У меня есть сайт, который я создал с помощью Django, и я пытаюсь развернуть его на сервере Apache, на котором я лежу (используя mod_wsgi в соответствии с рекомендациями официальных документов), и по большей части все идет отлично. У меня проблема с получением Apache для правильной обработки статических файлов, связанных с моим проектом. Судя по сравнению источника визуализированного HTML с файловой структурой моего сервера, я бы сказал, что мое приложение запрашивает правильные файлы из нужных мест, но по какой-то причине Apache выдает мне 404. Вот мой конфиг для apache:
<VirtualHost *:80>
ServerName book
ServerAlias www.book.dev book.dev
DocumentRoot /var/www/book
Alias /static/ /var/www/book/static
Alias /media/ /var/www/book/media
<Directory /var/www/book/static>
Order deny,allow
Allow from all
</Directory>
WSGIScriptAlias / /home/rich/sites/book/apache/django.wsgi
<Directory /home/rich/sites/book>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Если я перехожу на STATIC_ROOT
в своем веб-браузере (в данном случае www.book.dev/static
), я вижу (правильный) список первого уровня в структуре каталогов на сервере. Однако, пытаясь перейти по ссылкам на подкаталоги или даже файлы в корневом каталоге, мы получим только 404. Я использую Django 1.3, Python 2.6 и некоторую версию apache в диапазоне 2.X последняя версия в репозитории Debian)
Любая помощь приветствуется.
РЕДАКТИРОВАТЬ: (сюжет утолщается!)
Итак, еще немного поиграв, я нашел кое-что, что мне показалось интересным. Я обнаружил, что если я запускаю сервер разработки, URL-адреса, из которых извлекается статический контент, идентичны URL-адресам статических файлов, которые генерируются, когда Apache обслуживает файлы. Это означает, что все они принимают форму /static/<file>
, настроенную в settings.py
, но иногда это не работает.