Статический файл Django Хостинг Apache
Я пытаюсь переместить сайт Django, с которого я работал, из стадии сервера dev и в реальную среду хостинга. Пока я просто хожу на своей машине. У меня уже установлены Apache и mod-wsgi, но у меня проблемы с получением статических файлов. Я почти уверен, что это связано с Apache. Вот мой файл конфигурации для сайта:
<VirtualHost *:80>
ServerName localhost
ServerAlias daifotis.dyndns.org
ServerAdmin [email protected]
DocumentRoot /home/daifotis/code/
Alias /media/ /home/daifotis/code/feris/sitestatic
Alias /static/ /home/daifotis/code/feris/sitestatic
#AliasMatch ^/([^/]*\.css) /home/daifotis/code/feris/sitestatic/$1
<Directory /home/daifotis/code/feris/sitestatic>
Order allow,deny
Allow from all
</Directory>
<Directory /home/daifotis/code/feris>
Order allow,deny
Allow from all
</Directory>
<Directory /home/daifotis/code/feris/jobsite>
Order allow,deny
Allow from all
</Directory>
WSGIDaemonProcess feris processes=2 threads=15 display-name=%{GROUP}
WSGIProcessGroup feris
WSGIScriptAlias / /home/daifotis/code/feris/apache/django.wsgi
<Directory /home/daifotis/code/feris/apache>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Я пытаюсь разместить файлы из каталога I, псевдоним со статикой. Когда я пытаюсь загрузить сайт, все содержимое появляется, но нет css. Кроме того, когда я нажимаю свой URL-адрес www.server.com/static/, страница отображается с соответствующим содержимым каталога. Однако я не понимаю, почему, если я нажимаю ссылку для просмотра файла, он говорит, что URL-адрес не существует. Я застрял на этом некоторое время, поэтому любая помощь будет очень оценена.
Ответы
Ответ 1
Выяснил это. У меня была ошибка конфигурации apache в этой строке:
Alias /static/ /home/daifotis/code/feris/sitestatic
Я должен был написать статику без конечной косой черты. С завершающим косой чертой Apache не будет расширять URL-адрес.
Alias /static /home/daifotis/code/feris/sitestatic
Ответ 2
Я предполагаю, что вы используете Django 1.3 и "новый" способ обслуживания статических файлов. Не могли бы вы показать нам настройки в вашем файле settings.py
, относящемся к MEDIA и STATIC? И версии ROOT AND URL. Также покажите свой STATICFILES_DIRS.
Наиболее вероятной причиной является то, что Django настроен только для статических файлов с contrib.staticfiles
. Возможно, вам понадобится запустить команду управления python manage.py collectstatic
, чтобы собрать все ваши статические файлы приложения в каталог, готовый для обслуживания apache.
См. мой ответ здесь относительно настроек использования django.contrib.staticfiles
.
Если ваши статические файлы существуют, 100%, в каталоге, на который указывает Alias /static/ /home/daifotis/code/feris/sitestatic
, тогда ваши разрешения для apache, вероятно, настроены неправильно. Вы проверили файл /var/log/httpd/error_log
, чтобы увидеть, есть ли ошибка IOPermissions при попытке выполнить статический контент?