Статический файл 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 при попытке выполнить статический контент?