【nginx】django无法加载static文件

【nginx】django无法加载static文件
这是settings配置,换成注释部分也不行

【nginx】django无法加载static文件
uploads下的文件可以访问,但是static下都是404
同样的配置manage.py runserver后台没问题,但是用uwsgi部署就出问题

【nginx】django无法加载static文件

以下是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,部署的时候再改回来

【nginx】django无法加载static文件

首先,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,你为什么不看nginxerror.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

回到顶部