【nginx】django无法加载static文件
这是settings配置,换成注释部分也不行
uploads下的文件可以访问,但是static下都是404
同样的配置manage.py runserver后台没问题,但是用uwsgi部署就出问题
以下是uwsgi
# mysite_uwsgi.ini file[uwsgi]
# Django-related settings
# the base directory (full path)
chdir = /home/zc/blogtest
# Django's wsgi file
module = blogtest.wsgi
# the virtualenv (full path)
home = /home/zc/blogtest/blogtestenv
pythonpath = /usr/bin/python3
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 3
# the socket (use the full path to be safe
socket = /home/zc/blogtest/blogtest.sock
下边是nginx
location /media {alias /home/zc/blogtest/uploads; # your Django project's media files - amend as required
}
location /static {
alias /home/zc/blogtest/static; # your Django project's static files - amend as required;
}
回答
STATIC_URL = '/static/'
STATIC_ROOT= os.path.join(BASE_DIR,'statics/')
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "blog/static/"),
os.path.join(BASE_DIR,'static/')
)
好像django里边STATICFILES_DIRS里边不能包括STATIC_ROOT会报错,所以我把root改成了statics,部署的时候再改回来
首先,settings.py需要设置static_root
再者,urls.py中需要添加对static的映射
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()
很久没写django了
manage.py runserver启动的时候,静态文件是通过django本身来访问的,
你的代码里面貌似没贴相关的代码(urlpatterns部分)
另外一种应该是通过nginx访问静态文件的,那个如果访问不了的话,应该是配置或者nginx权限的问题
这个访问不了应该跟django.没啥关系,是nginx配置的问题。
既然是404,你为什么不看nginx
的error.log
呢?
@zwillon 说的是正解,应该检查nginx配置,如果配置正常的话,在运行服务前 先使用
python manage.py collectstatic
把放在app下static中的静态文件全部拷贝到 settings.py 中设置的 STATIC_ROOT 文件夹中
然后,nginx配置里
location /static { alias /home/zc/blogtest/static; # 这里是STATIC_ROOT的绝对路径
}
另一种方法是:
不收集静态文件,把nginx中的static配置到app的static目录绝对路径,这种方式有一个麻烦的地方就是,当你有多个app并且使用了django的admin、suit这种应用的话,需要配置多个路径,会麻烦一些,所以推荐第一种收集静态文件的方式
最近刚好在练习django blog。
1.查看网页源代码,如果引入的静态文件是404说明静态文件配置路径不对,403则可能是权限问题。Nginx中配置
location /static {
alias /home/zc/blogtest/static; # 这里是STATIC_ROOT的绝对路径
}
是正解(解决404);403则看一下文件权限。
2.增加富文本编辑器之后,一要文件夹权限要修改,二是nginx要重启。我是把uwsgi以及nginx全部重启之后就可以了。
如果是跟nginx集成的话,静态文件的处理应该是直接由nginx来处理,而不要再交由django处理了
以上是 【nginx】django无法加载static文件 的全部内容, 来源链接: utcz.com/a/83507.html