原因:
django专注后端,前端交给nginx/uwsgi处理。
事情缘由:
我在本地开发django的时候,使用python manage.py runserver 可以正常加载static静态文件;在上线的时候,访问static文件时,一直提示无法访问,提示:
GET /static/js/My97DatePicker/WdatePicker.js => generated 2357 bytes in 4 msecs (HTTP/1.0 404) 3 headers in 102 bytes
错误如图:
解决方法:
方案1、通过nginx指定静态路径,(未成功)
server {
listen 80;
server_name plot.gray.XXX.com;
location / {
alias /opt/cicd/static/; # 手动指定静态文件夹路径
proxy_pass http://127.0.0.1:8000;
index index.html index.htm index.jsp;
}
}
方案2、通过django收集静态文件,并在uwsgi指定对应路径
# 进入项目目录,执行命令
cd django
python manage.py collectstatic
查看配置文件
[uwsgi]
# 通过uwsgi访问django需要配置成http,9000 是django的端口号
# socket = 0.0.0.0:9000 # 通过nginx请求uwsgi来访问django 需要配置成socket
http = 0.0.0.0:9000
# web项目根目录
chdir = /usr/local/django/cicd
wsgi-file= ./cicd/wsgi.py
# module指定项目自带的wsgi配置文件位置
# module = fresh.wsgi
# 允许存在主进程
master = true
# 开启进程数量
processes = 4
thread = 2
# 服务器退出时自动清理环境
vacuum = true
# 使用 uwsgi 的"路径映射"方法提供静态文件
static-map = /static=/usr/local/django/cicd/static
来源:oschina
链接:https://my.oschina.net/u/4393652/blog/4302423