Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » запутался со статическими файлами в подключаемом модуле [RSS Feed]

#1 Фев. 24, 2012 11:59:55

whitehat
От:
Зарегистрирован: 2011-11-03
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

запутался со статическими файлами в подключаемом модуле

Решил мигрировать свой небольшой внутренный сайт на джангу. Так как нужно будет отображать очень много таблиц, пытаюсь встроить djblets datagrid в проект.
Встраивание прошло успешно, оно отображает мои таблицы, но я никак не могу побороть отображение статических файлов, которые идут в стандартной поставке djblets. А именно css,js,images. Сами файлы лежат в “c:\Python27\Lib\site-packages\Djblets-0.7alpha0.dev-py2.7.egg\djblets\media\”, при генерации страниц ссылки создаются такого плана “<img src=”djblets/images/datagrid/unsort.png“ В исходниках самого djblets ссылки выглядят так ”{{MEDIA_URL}}djblets/images/datagrid/checkmark.png?{{MEDIA_SERIAL}}"

manage.py collectstatic делал - он собирает файлы из текущего проекта, из admin, но не из djblets.
Писать в settings.py что-то на подобии

MEDIA_URL="c:\Python27\Lib\site-packages\Djblets-0.7alpha0.dev-py2.7.egg\djblets\media\"
- явно какой-то неправильный путь :(
Как объяснить джанге, что нужно подтянуть статичные файлы djblets?

На всякий случай settings.py

Спасибо за помощь!



Офлайн

#2 Фев. 24, 2012 12:26:18

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

запутался со статическими файлами в подключаемом модуле

whitehat
Решил мигрировать свой небольшой внутренный сайт на джангу. Так как нужно будет отображать очень много таблиц, пытаюсь встроить djblets datagrid в проект.
Встраивание прошло успешно, оно отображает мои таблицы, но я никак не могу побороть отображение статических файлов, которые идут в стандартной поставке djblets. А именно css,js,images. Сами файлы лежат в “c:\Python27\Lib\site-packages\Djblets-0.7alpha0.dev-py2.7.egg\djblets\media\”, при генерации страниц ссылки создаются такого плана “<img src=”djblets/images/datagrid/unsort.png“ В исходниках самого djblets ссылки выглядят так ”{{MEDIA_URL}}djblets/images/datagrid/checkmark.png?{{MEDIA_SERIAL}}"

manage.py collectstatic делал - он собирает файлы из текущего проекта, из admin, но не из djblets.
Писать в settings.py что-то на подобии
MEDIA_URL="c:\Python27\Lib\site-packages\Djblets-0.7alpha0.dev-py2.7.egg\djblets\media\"
- явно какой-то неправильный путь :(
Как объяснить джанге, что нужно подтянуть статичные файлы djblets?

На всякий случай settings.py

Спасибо за помощь!
Неа, в MEDIA_URL у тебя должно быть что-то типа
MEDIA_URL = ‘/static/’
и соответственно ссылки на медиа-ресурсы выглядят так
<script type=“text/javascript” src=“/static/js/jquery-1.5.1.min.js”></script>

А вот в
MEDIA_ROOT
ты пишешь что-то типа
MEDIA_ROOT = ‘/home/FishHook/sites/portal/portal/media’



Офлайн

#3 Фев. 24, 2012 12:56:58

whitehat
От:
Зарегистрирован: 2011-11-03
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

запутался со статическими файлами в подключаемом модуле

Добавил:

MEDIA_ROOT = 'D:/whitehat/Dropbox/projects/stats/media/'
MEDIA_URL = '/media/'
STATIC_ROOT = 'D:/whitehat/Dropbox/projects/stats/sitestatic/'
STATIC_URL = '/static/'
теперь генерируются ссылки вида “src=”/media/djblets/images/datagrid/sort_desc_secondary.png“”
но толку от этого мало - надо как-то “положить” в этот media файлы из “c:\Python27\Lib\site-packages\Djblets-0.7alpha0.dev-py2.7.egg\djblets\media\”



Офлайн

#4 Фев. 24, 2012 13:20:09

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

запутался со статическими файлами в подключаемом модуле

whitehat
Добавил:
MEDIA_ROOT = 'D:/whitehat/Dropbox/projects/stats/media/'
MEDIA_URL = '/media/'
STATIC_ROOT = 'D:/whitehat/Dropbox/projects/stats/sitestatic/'
STATIC_URL = '/static/'
теперь генерируются ссылки вида “src=”/media/djblets/images/datagrid/sort_desc_secondary.png“”
но толку от этого мало - надо как-то “положить” в этот media файлы из “c:\Python27\Lib\site-packages\Djblets-0.7alpha0.dev-py2.7.egg\djblets\media\”
Так попробуй

MEDIA_ROOT = 'c:\Python27\Lib\site-packages\Djblets-0.7alpha0.dev-py2.7.egg\djblets\media\'
MEDIA_URL = '/media/'
STATIC_ROOT = 'D:/whitehat/Dropbox/projects/stats/sitestatic/'
STATIC_URL = '/static/'
или перенеси код из c:\Python27\Lib\site-packages\Djblets-0.7alpha0.dev-py2.7.egg\djblets\media\
в свою папку static



Офлайн

#5 Фев. 24, 2012 13:39:54

whitehat
От:
Зарегистрирован: 2011-11-03
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

запутался со статическими файлами в подключаемом модуле

FishHook
MEDIA_ROOT = 'c:\Python27\Lib\site-packages\Djblets-0.7alpha0.dev-py2.7.egg\djblets\media\'
MEDIA_URL = '/media/'
STATIC_ROOT = 'D:/whitehat/Dropbox/projects/stats/sitestatic/'
STATIC_URL = '/static/'
или перенеси код из c:\Python27\Lib\site-packages\Djblets-0.7alpha0.dev-py2.7.egg\djblets\media\
в свою папку static
в том то и дело, что таким образом поступать не хочется, ведь явно в django есть механизмы взамодействия с модулями, я ведь не переносил ничего из admin - джанго сам каким-то образом перенёс нужные файлы в проект



Офлайн

#6 Фев. 24, 2012 13:54:50

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

запутался со статическими файлами в подключаемом модуле

whitehat
FishHook
MEDIA_ROOT = 'c:\Python27\Lib\site-packages\Djblets-0.7alpha0.dev-py2.7.egg\djblets\media\'
MEDIA_URL = '/media/'
STATIC_ROOT = 'D:/whitehat/Dropbox/projects/stats/sitestatic/'
STATIC_URL = '/static/'
или перенеси код из c:\Python27\Lib\site-packages\Djblets-0.7alpha0.dev-py2.7.egg\djblets\media\
в свою папку static
в том то и дело, что таким образом поступать не хочется, ведь явно в django есть механизмы взамодействия с модулями, я ведь не переносил ничего из admin - джанго сам каким-то образом перенёс нужные файлы в проект
Как это не переносил

settings.py
# URL prefix for admin static files -- CSS, JavaScript and images.
# Make sure to use a trailing slash.
# Examples: "http://foo.com/static/admin/", "/static/admin/".
ADMIN_MEDIA_PREFIX = '/static/admin/'
>>> механизмы взамодействия с модулями
Ты путаешь теплое с мягким, модуль это модуль, а статические файлы - это статические файлы.
Концептуально, Django-проект не раздает статику, это дело веб-сервера.
Чтобы встроенный отладочный веб-сервер раздавал статику в settings.py есть настройки, их и юзай.
>>>таким образом поступать не хочется
Почему же?



Офлайн

#7 Фев. 24, 2012 13:59:06

whitehat
От:
Зарегистрирован: 2011-11-03
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

запутался со статическими файлами в подключаемом модуле

>>>таким образом поступать не хочется
Почему же?

Меня смутило, что django для admin как-то ведь понимает, откуда вытягивать те же картинки, а тут - надо вручную добавлять.. а если это хостинг и модуль обновится - это ж потом для всех проектов руками все эти файлы опять обновлять… вот и подумал, что должен быть более правильный путь….



Офлайн

#8 Фев. 24, 2012 14:29:58

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

запутался со статическими файлами в подключаемом модуле

whitehat
>>>таким образом поступать не хочется
Почему же?

Меня смутило, что django для admin как-то ведь понимает, откуда вытягивать те же картинки, а тут - надо вручную добавлять.. а если это хостинг и модуль обновится - это ж потом для всех проектов руками все эти файлы опять обновлять… вот и подумал, что должен быть более правильный путь….
Опять путаешь понятия
>>> и модуль обновится
Модуль - это код. Ты его можешь подтянуть всегда и везде, хоть откуда, хотя бы
sys.path.append(“некий_путь”)
from “некий_путь” import ‘некий_модуль’
А статика - это статика, она не импортируется, это просто набор файлов, любых, она одна на проект. И это правильно.



Офлайн

#9 Фев. 24, 2012 15:14:38

whitehat
От:
Зарегистрирован: 2011-11-03
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

запутался со статическими файлами в подключаемом модуле

хорошо, спасибо за науку :) первый проект “после helloworld”, поэтому ещё не понимаю, где нужно делать “в лоб”, а где использовать магию джанго :)



Офлайн

  • Начало
  • » Django
  • » запутался со статическими файлами в подключаемом модуле[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version