我正在尝试在Windows上使用Django + Apache + WSGI。
我一直在使用Bitnami堆栈,因此它负责安装Apache。我能够在Django上放置一个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资源管理器中搜索。所以我不确定为什么会这样,有人能指出我正确的方向吗?
感谢。
编辑:这是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>
答案 0 :(得分:1)
在我的情况下,我只需要为静态文件制作Alias,在您的情况下,我的配置将如下所示:
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>
当您运行多个django应用程序时,使用此WSGIDaemonProcess是值得的。此外,您的问题可能由您的系统引起,您可能会尝试使用“\”而不是“/”,例如:
Alias /static/ E:\Bitnami\djangostack-1.6.7-1\apache2\static\