Django: статические файлы не загружаются
Мой проект django содержит папку STATIC, в которой находятся его дочерние папки css images js и swf. Мой сайт не может найти эти файлы, подняв 404 на сервере разработки, работающем на терминале.
У меня есть файл settings_local.py, в котором я установил путь, например (работает на Ubuntu 11.04)
STATIC_ROOT = '/home/zulaikha/dust.bin/my_project/static/'
STATIC_SERVE_PORT = 80
Пример файла settings-local.py от клиента предлагает предложить так
# static root
STATIC_ROOT = 'C:/Program Files (x86)/XAMPP/htdocs/static'
STATIC_SERVE_PORT = 8080
Я видел некоторые похожие проблемы, но все они касаются STATICFILES, которые я прочитал, был представлен в Django 1.3. Где я ошибаюсь и как я могу исправить себя?
3 ответа
В простейшем виде это решение проблемы. В проект urls.py включите следующие строки
urlpatterns += patterns('',
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {
'document_root': settings.STATIC_ROOT,
}),
)
Если вы действительно используете django 1.2, вы должны установить django-staticfiles. Если вы не видите его в прилагаемом файле require.txt от вашего клиента, он либо не замораживает его в файл, либо не использует эту функцию, а просто указывает на него через apache или другой рабочий сервер.
Следуйте этим инструкциям из документов. Конкретно основной раздел: https://docs.djangoproject.com/en/dev/howto/static-files/
Вам нужно будет добавить статические файлы в ваше установленное приложение. Вам также не нужно вручную добавлять URL, поскольку django должен делать это автоматически с помощью команды runserver.
Также убедитесь, что сначала он работает локально, не запуская sudo или пользовательский ip и порт.
Согласно вашим комментариям здесь есть два варианта:
- Свяжитесь с программистом, который написал код, и спросите его.
- Переписать статическую логику обслуживания с помощью
- django-staticfiles (достаточно Django 1.2)
- django.contrib.staticfiles и Django 1.3