【发布时间】:2019-07-12 07:24:40
【问题描述】:
我正在尝试在带有 python 3.5.3 和 django 2.1.7 的树莓派 3(raspian 9)上使用 gunicorn 19.19.0 和 nginx 1.10.3 运行 django 管理应用程序。 Nginx 似乎工作正常,并且 nginx 和 gunicorn 错误日志为空。但是,该应用不会显示任何静态内容。
我检查了 nginx.conf 文件。
我运行了 collectstatic 并检查了所有文件是否都在那里。
我可以将浏览器指向 192.168.1.20/static,它会显示正确的目录。
我还可以浏览所有文件。
我尝试使用 '/' 跟随 nginx.conf 文件中的路径
管理应用程序的所有功能都可以正常工作。只是没有静态内容。
我已经用谷歌搜索并阅读/尝试了我能找到的每个论坛修复程序。
我还运行了 python 开发服务器(python manage.py runserver)。在该配置中,静态内容显示得很好。
nginx.conf 文件
events{}
http {
server {
listen 80;
server_name localhost;
location /static {
autoindex on;
alias /home/pi/DigitalClock/dcvenv/static;
}
location / {
error_log /home/pi/DigitalClock/dcvenv/nginx_err.log;
access_log /home/pi/DigitalClock/dcvenv/nginx_acc.log;
proxy_pass http://127.0.0.1:8000;
}
}
}
gunicorn 启动命令
gunicorn dcweb.wsgi:application --bind localhost:8000
django 项目设置文件
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR,'static/')
ngnix_acc.log 的最后一个条目(*_err.log 为空)
192.168.1.10 - - [18/Feb/2019:12:45:43 -0800] "POST /admin/login/?next=/admin/ HTTP/1.1" 302 0 "http://192.168.1.20/admin/login/?next=/admin/" "Mozilla/ 5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,如 Gecko)Chrome/71.0.3578.98 Safari/537.36" 192.168.1.10 - - [18/Feb/2019:12:45:43 -0800] "GET /admin/ HTTP/1.1" 200 4944 "http://192.168.1.20/admin/login/?next=/admin/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit /537.36(KHTML,如 Gecko)Chrome/71.0.3578.98 Safari/537.36" 192.168.1.10 - - [18/Feb/2019:12:45:59 -0800] "GET /admin/auth/group/HTTP/1.1" 200 3500 "http://192.168.1.20/admin/" "Mozilla/5.0 (Windows NT 10.0; Win64 ; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36" 192.168.1.10 - - [18/Feb/2019:12:45:59 -0800] "GET /admin/jsi18n/HTTP/1.1" 200 3185 "http://192.168.1.20/admin/auth/group/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64 ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
【问题讨论】:
-
您的访问日志仅针对位置 / 定义。此日志中没有静态条目也就不足为奇了。 html生成是否包含静态链接?
-
是的,生成的 html 包含如下链接:
-
在你的 nginx 配置文件中,为静态文件添加一个
/为:location /static/ {alias /home/pi/DigitalClock/dcvenv/static/ ;},同时尝试删除自动索引。 -
谢谢。我试过了。没有运气。
标签: python django nginx gunicorn