【发布时间】:2015-02-28 11:08:05
【问题描述】:
多年来,我一直是 django 开发人员,但是在提供静态文件时,一个 1.7 的小型实践项目让我非常头疼。
我已经设置了 STATIC_ROOT
STATIC_ROOT = '/var/www/mydomain/static'
我已经设置了 STATIC_URL
STATIC_URL = '/static/' #as default
我没有使用 STATICFILES_DIRS,因为我有一个名为“pages”的应用程序,它位于 INSTALLED_APPS 中。在本地主机上,静态文件正确提供
我使用的是 Ubuntu 14.4 和 Apache/2.4.7
我的 apache conf 是
<VirtualHost *:80>
ServerName mydomain.net #I own the domain and pointed it correctly in GoDaddy
ServerAlias www.mydomain.net
Alias /static/ /var/www/mydomain/static
<Directory /var/www/mydomain/static>
Require all granted
</Directory>
WSGIScriptAlias / /var/www/mydomain/mydomain/wsgi.py
<Directory /var/www/mydomain/mydomain>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess mydomain.net python-path=/var/www/mydomain:/var/www/mydomain/venv/lib/python2.7/site-packages
WSGIProcessGroup mydomain.net
</VirtualHost>
我已经运行 collectstatic 并确认所有静态文件都在 /var/www/mydomain/static/* 中。
网站加载,但我在所有 css 和 js 文件上都收到 404。
所有调试工作都失败了。我已经删除了 STATIC_ROOT 目录以期望 403,但仍然得到 404。我已经将所有文件/文件夹都设置为 root 以进行测试;没有。我创建了一个部署用户并将所有文件/文件夹添加到它;没有。我已经将所有文件/文件夹都添加到 www-data;什么都没有!!
Apache 2.4+ 中是否有让我失望的新配置?
【问题讨论】:
-
您是从 apache 还是 django 获得 404 的?当你得到一个 404 时,你可以发布你的 apache /var/log/error.log(或其他)的 sn-p。最后,你是在使用 SELinux 运行的东西吗?
-
这个线程有什么更新吗?
-
也许显示您网站的 curl 调用?也许尝试
/static而不是/static/?
标签: python django apache mod-wsgi