0
我使用Apache与mod_wsgi来为项目提供服务,它是静态文件。Django - Apache与mod_wsgi不提供静态文件
我用官方文档"How to use Django with Apache and mod_wsgi"和一切工作正常,除了没有找到静态文件。我还没有找到任何好的方法来调试这个问题,甚至没有找到可以指向错误的特定消息。
我做了什么至今:
- 双重检查的静态文件是正确的静态文件目录的地方。
[..] DEBUG = False STATIC_ROOT = '/var/www/djangoProject/static-files' STATIC_URL = '/static/'
的Apache设置:
WSGIDaemonProcess djangoProject WSGIProcessGroup djangoProjectGroup WSGIApplicationGroup %{GLOBAL} WSGIPythonHome /var/www/djangoProject/venv/lib/python2.7/site-packages WSGIPythonPath /var/www/djangoProject/ WSGIScriptAlias//var/www/djangoProject/djangoProject/wsgi.py <Directory /var/www/djangoProject/djangoProject> <Files wsgi.py> Require all granted </Files> </Directory> Alias /static/ /var/www/djangoProject/static-files/ <Directory /var/www/djangoProject/static-files> Require all granted </Directory>
WSG他们被collectstatic
- 检查文件权限
settings.py收集i.py
import os, sys
sys.path.append('/var/www/djangoProject')
sys.path.append('/var/www/djangoProject/venv/lib/python2.7/site-packages')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "djangoProject.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Apache的访问日志:
"GET /static/app01/css/default.css HTTP/1.1" 404 346 "http://example.com/"
apache2.conf:
Mutex file:${APACHE_LOCK_DIR} default
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
AccessFileName .htaccess
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/
你是如何加载你的apache的conf?你可以显示你的主要httpd.conf? – lapinkoira
我包含了主要的apache2.conf –
与静态文件无关,但您如何设置Python虚拟环境已经搞乱了一点。确保您阅读http://modwsgi.readthedocs.io/en/develop/user-guides/virtual-environments.html以获取正确的方法。 –