Обслуживание статических медиа в приложении django - PullRequest
1 голос
/ 02 января 2011

Я замечаю, что когда я ссылаюсь на свои java-скрипты и статические файлы изображений из моих шаблонов, они появляются в разработке, но не с рабочего сервера.Из разработки я обращаюсь к ним как к такому:

<img src="/my_proj/media/css/images/collapsed.png" />

, но из производства я должен удалить каталог проекта:

<img src="/media/css/images/collapsed.png" />

Я предполагаю, что я делаю что-то не так сЧто касается подачи статических носителей.

Я попал в число, казалось бы, разных вариантов подачи статических носителей в Django.С одной стороны, я рекомендовал использовать django-staticfiles для обслуживания мультимедиа.С другой стороны, я вижу ссылку на STATIC_ROOT и STATIC_URL в документации (с предостережениями об использовании в производстве).

У меня есть небольшие файлы .png с символами «плюс» и «минус» дляиспользовать в некоторых моих сценариях jQuery.Кроме того, на сами сценарии необходимо ссылаться.

1) Правильно ли я классифицирую сценарии и изображения сайтов как статические носители?
2) Каков наилучший способ доступа к этому носителю (с производства)?

Ответы [ 2 ]

3 голосов
/ 02 января 2011

Вы не должны хранить URL-адреса таким образом.

Если вы используете версию Django для dev, вам следует проверить этот документ .

Если выдля простоты вы не можете использовать {{MEDIA_URL}} и настраивать эту переменную в своих настройках для dev и for production.

<img src="{{ MEDIA_URL }}/media/css..." />

Имейте в виду, что вам придется использовать RequestContext, Подробнее о документации здесь и здесь .

ТакжеВы должны сервировать все свои статические файлы напрямую через соответствующий веб-сервер.Вы можете настроить apache или nginx для этого.

1 голос
/ 02 января 2011

Вздох. Существует только один способ обслуживания статических носителей в производственной среде - заставить веб-сервер - например, Apache - сделать это. Django-staticfiles предназначен только для разработки, и это четко указано в документации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...