【发布时间】:2014-07-19 14:55:45
【问题描述】:
我不知道我的 django 项目的虚拟主机出了什么问题,但简单的问题是,无论我对此文件进行什么修改,仍然会在 apache 的错误日志中输出相同的内容,并且不加载任何 css 或 js 文件,我可以看到 Apache 正在根 web 文件夹中寻找静态和媒体文件:/var/www
[Fri May 30 00:58:08 2014] [error] [client 192.168.1.145] File does not exist: /var/www/static, referer: http://192.168.1.143/dgp/login/
我设置虚拟主机文件如下:
WSGIPythonPath /var/www/dgp_python2_7/bin/python2.7:/var/www/dgp_python2_7/lib/python2.7/site-packages
WSGIScriptAlias /dgp /var/www/dgp/dgp/dgp/wsgi.py
<VirtualHost 127.0.0.1:80>
ServerName www.dgp.dev
ServerAlias dgp.dev
AliasMatch ^/([^/]*\.css) /var/www/dgp/dgp/static/$1
Alias /media/ /var/www/dgp/dgp/media/
Alias /static/ /var/www/dgp/dgp/static/
Alias /images/ /var/www/dgp/dgp/images/
<Directory /var/www/dgp/dgp/static/>
Order deny,allow
Allow from all
</Directory>
<Directory /var/www/dgp/dgp/media/>
Order deny,allow
Allow from all
</Directory>
ErrorLog /var/www/dgp/dgp/error.log
CustomLog /var/www/dgp/dgp/access.log combined
</VirtualHost>
在 settings.py STATIC_ROOT 和 '/var/www/dgp/dgp/static/' 中,所有 css 内容都位于哪里。
如何告诉 apache 或 Django 寻找正确的目录 '/var/www/dgp/dgp/static/'?快把我逼疯了,我不明白开发中如此基本的东西如何在生产中如此复杂。
问候!
使用解决方案编辑
真正的问题是我没有禁用 Debian Apache 的默认站点(这是我正在使用的版本)并且有另一种稳定虚拟主机的方法,一开始我们必须使用以下命令禁用默认站点:a2dissite defaultand 现在一切都像魅力一样!
【问题讨论】:
-
您的 VirtualHost 定义可能根本没有被使用。一般来说,在 VirtualHost 中使用 IP 地址是一个坏主意,因为它太容易塞满东西。特别是使用 127.0.0.1 将是一个不好的用途。尝试使用“*”而不是“127.0.0.1”。还将您的 WSGIScriptAlias 也放在 VirtualHost 中。
-
我之前试过,它是*并更改为127.0.0.1仅用于测试并没有任何变化,WSGIScriptAlias放在VirtualHost中时永远不会起作用,只有在外面时,我不知道出了什么问题有了这个,如果这可能是问题。
-
听起来您可能有多个相互冲突的 VirtualHost 定义。您还设置了哪些其他 VirtualHost 定义?
-
我认为您应该回答自己的问题并将其标记为答案,而不是将答案放在问题中。
标签: django apache static mod-wsgi django-staticfiles