происходит то, что в режиме отладки django обслуживает ваш файл style.css.Вы говорите ему сделать это с этой строкой
(r'^site_media/(.*)$', 'django.views.static.serve', {'document_root': os.path.join(os.path.dirname(__file__), 'site_media')}),
)
Но эта строка не входит в переменную urlpatterns
, когда отладка имеет значение false.Чтобы проверить это, попытайтесь получить доступ к localhost:8000/site_media/style.css
, когда отладка истинна (должна работать) и когда она ложна (выдаст ошибку 404.)
Вы можете просто пропустить
if settings.DEBUG:
часть, но это означает, что django будет по-прежнему обслуживать статические файлы, и это не рекомендуется в производстве по соображениям производительности
В производственных настройках вы должны использовать другой веб-сервер для обслуживания ваших статических файлов.У меня был хороший опыт работы с nginx перед apache.
Это превосходное учебное пособие, в котором показано, как создать такую настройку: http://www.ventanazul.com/webzine/tutorials/django-deployment-guide-ubuntu
Будьте готовы к тому, что создание производственной настройки не так безболезненно, как просто набрать python manage.py runserver
.Я также слышал хорошие отзывы об использовании nginx вместе с gunicorn , что значительно упрощает настройку производственного сервера, но сам по себе не имел опыта.