Holy moly!!!!因为漏了一下斜杠,害我反复调试了2,3天,无法读取static 文件,一直找不出原因,后来在apache的error.log中发现了原因。
1. 下载了apache 2.4, 并安装mod_wsgi: 下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi
基本上第三方的包都可以在这个地址上找到。
whl文件: 可以使用install pip *.whl 来解压安装,解压后你所在的文件夹,会有个mod_wsgi.so的文件,将其烤入:{install directory}\Apache24\modules
Apache 的安装和配置比较简单就不细说了,唯一值得注意的是安装完后配置 {install directory}\Apache24\conf\httpd.conf 文件.
就是 Define SRVROOT "{}" 记得改成你Apache24所在的目录。还有注意端口的占用和修改,比如80端口,可能迅雷和IIS都会占用,修改端口号,
#Listen 12.34.56.78:
Listen 127.0.0.1: 此处为修改成8086端口
2.接下来就是配置Django和Apache
还是{install directory}\Apache24\conf\httpd.conf 这个文件,需要设置路劲之类的
#添加mod_wsgi.so 模块
LoadModule wsgi_module modules/mod_wsgi.so #指定myweb项目的wsgi.py配置文件路径
WSGIScriptAlias / F:/Django_Project/qblog/qblog/wsgi.py #指定项目路径
WSGIPythonPath F:/Django_Project/qblog <Directory F:/Django_Project/qblog/qblog>
<Files wsgi.py>
Require all granted
</Files>
</Directory> Alias /static/ F:/Django_Project/qblog/static/ #红色部分尤其注意啊,之前就是这里被坑爹了,网上给的教程多数没有最后的 / 导致我静态文件读取不出来
<Directory F:/Django_Project/qblog/static/> #千万要记得加/,最后是看Apache的errorlog才发现的,果然看Log很有用!
AllowOverride None
Options None
Require all granted
</Directory>
setting.py中记得将 DEBUG和 TEMPLATE_DEBUG设成True,否则会有404报错.
DEBUG = True TEMPLATE_DEBUG = True ALLOWED_HOSTS = []
3. Admin的静态文件显示不正确的情况
先设置static_ROOT在setting.py中
STATIC_ROOT = os.path.join(BASE_DIR, "static")
之后运行collectstatic将所有static文件收集到static_root下面(包括admin和你app的静态文件)
F:\mydjango>python manage.py collectstatic
再将你的static路劲指向这里!大功告成!