2014-12-16 3 views
2

Я пытаюсь использовать Django + Apache + WSGI для Windows.Django/Apache/Mod_WSGI - Ошибка HTTP 404 со статическими файлами

Я использую стек Bitnami так, чтобы он заботился об установке Apache. Я смог поместить Django Project на Django, однако он загружает веб-страницу без каких-либо статических файлов (css, js). Так я открыл журналы Apache и все статические файлы отображаются как 404.

Это мой HTTPD-app.conf:

<Directory "E:/Bitnami/djangostack-1.6.7-1/apps/django/django_projects/Dashboard_Web/Dashboard_Web"> 
    Options +MultiViews 
    AllowOverride All 
    <IfVersion <2.3> 
     Order allow,deny 
     Allow from all 
    </IfVersion> 
    <IfVersion >= 2.3> 
     Require all granted 
     Options All 
    </IfVersion> 
    Options +ExecCGI 


WSGIApplicationGroup %{GLOBAL} 
    <IfVersion <2.3> 
     Order allow,deny 
     Allow from all 
    </IfVersion> 
    <IfVersion >= 2.3> 
     Require all granted 
     Options All 
    </IfVersion> 
    Options All 
    AllowOverride All 
    Options Indexes FollowSymLinks 
    Options +ExecCGI   
</Directory> 


Alias /static/ 'E:/Bitnami/djangostack-1.6.7-1/apache2/static/' 

<Directory 'E:/Bitnami/djangostack-1.6.7-1/apache2/static'> 
    <IfVersion <2.3> 
     Order allow,deny 
     Allow from all 
    </IfVersion> 
    <IfVersion >= 2.3> 
     Require all granted 
     Options All 
    </IfVersion> 
     Require all granted 
    Options All 
    AllowOverride All 
    Options Indexes FollowSymLinks 
</Directory> 

<Directory /> 
    Require all granted 
</Directory> 

WSGIScriptAlias /Dashboard_Web 'E:/Bitnami/djangostack-1.6.7-1/apps/django/django_projects/Dashboard_Web/Dashboard_Web/wsgi.py' 

Это мой settings.py:

STATIC_URL = '/static/' 
STATIC_ROOT = "E:/Bitnami/djangostack-1.6.7-1/apache2/static/" 

для статических файлов, я использовал python manage.py collectstatic и он будет генерировать все статические файлы "E:/Bitnami/djangostack-1.6.7-1/apache2/static/», так что я могу автоматизировать его с Fabric (так что не нужно обновлять статические файлы, введя python manage.py collectstatic себя).

Псевдоним, похоже, указывает на нужную папку, поскольку он доступен для поиска в Проводнике Windows. Поэтому я не знаю, почему это происходит, может ли кто-нибудь указать мне правильное направление?

Спасибо.

Edit: Это то, что выглядит в HTML-страницу

<script type="text/javascript" src="/static/WebApp/jquery-2.1.1.min.js"></script> 
<script type="text/javascript" src="/static/WebApp/login.js"></script> 
<script type="text/javascript" src="/static/WebApp/bootstrap-3.2.0-dist/js/bootstrap.min.js"></script> 
<script type="text/javascript" src="/static/WebApp/zxcvbn-master/zxcvbn.js"></script> 
<script type="text/javascript" src="/static/WebApp/jquery.pwstrength.bootstrap-1.2.2/dist/pwstrength-bootstrap-1.2.2.min.js"></script> 

Это, как я ссылку на статические файлы

{% load staticfiles %} 
<script type="text/javascript" src="{% static 'WebApp/jquery-2.1.1.min.js' %}"></script> 
<script type="text/javascript" src="{% static 'WebApp/index.js' %}"></script> 
<script type="text/javascript" src="{% static 'WebApp/bootstrap-3.2.0-dist/js/bootstrap.min.js' %}"></script> 
<script type="text/javascript" src="{% static 'WebApp/flot/jquery.flot.js' %}"></script> 
<script type="text/javascript" src="{% static 'WebApp/DataTables-1.10.2/media/js/jquery.dataTables.min.js' %}"></script> 

ответ

1

В моем случае мне нужно сделать только Алиас для статического файла, в ваш случай, моя конфигурация будет выглядеть следующим образом:

WSGIDaemonProcess Dashboard_Web python-path=E:/Bitnami/djangostack-1.6.7-1/apps/django/django_projects/Dashboard_Web/ 
WSGIScriptAlias /Dashboard_Web E:/Bitnami/djangostack-1.6.7-1/apps/django/django_projects/Dashboard_Web/Dashboard_Web/wsgi.py process-group=Dashboard_web 

Alias /static/ E:/Bitnami/djangostack-1.6.7-1/apache2/static/ 

<Directory E:/Bitnami/djangostack-1.6.7-1/apps/django/django_projects/Dashboard_Web/> 

Order allow,deny 

Allow from all 

</Directory> 

это стоит использовать этот WSGIDaemonProcess при RU n более одного приложения django. Кроме того, ваша проблема может быть связана с вашей системой, вы можете попытаться использовать «\» вместо «/», например:

Alias /static/ E:\Bitnami\djangostack-1.6.7-1\apache2\static\ 
+0

Привет, Спасибо за ваш ответ! Я попытался изменить псевдоним на/static/E: \ Bitnami \ djangostack-1.6.7-1 \ apache2 \ static \, однако я все еще получаю 404. – user1157751

+0

Вы перезапустили службу apache каждый раз, когда вы что-то меняете? В моем случае это всегда единственный способ заставить apache видеть изменения. –

+0

Да, я пытался перезапустить его каждый раз, когда я вносил изменения. Есть ли способ отладить это, кроме HTTP 404? – user1157751

Смежные вопросы