首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >解决django部署后静态文件404问题

解决django部署后静态文件404问题

作者头像
kirin
发布于 2020-05-09 07:54:14
发布于 2020-05-09 07:54:14
6.9K0
举报
文章被收录于专栏:Kirin博客Kirin博客

用过django的内置服务器127.0.0.1:8000都知道,如果debug=False的时候那么django就不会自己去寻找静态文件了,

那么这个时候就需要自己去设置静态文件的路径,为此,我踩过不少坑,这篇文章能够很好的解决这个问题

我部署的环境是centos7.6 + django + uwsgi + nginx 详情请参考此博客下部署文章

在nginx中设置好静态文件路径,用绝对路径指向静态文件static即可,media同理

location /static{

alias /data/wwwroot/project/static;

}

正文开始

如果你的项目部署后所有的静态文件都出现了404,那么你应该检查一下,你的setting中是否有设置

因为线上环境是不可能开启debug的,总结就是开启debug关了之后就不会django就不会自己找静态文件了

所以,只需要自己设置好路由,让django去按照指定的路由去找静态文件就完美的解决了

DEBUG=False

# STATICFILES_DIRS=[os.path.join(BASE_DIR,’static’)] 这句是需要注释的

STATIC_ROOT=os.path.join(BASE_DIR,’static’)  #用于处理静态文件

MEDIA_ROOT=os.path.join(BASE_DIR,’media’) # 用于处理上传的文件

setting中做好了这三部之后

开始在url.py中设置

首先导入

from django.conf.static import serve

from django.conf import settings

from django.urls import re_path # 因为需要用到正则匹配所以导入它

接着在路由中添加

urlpatterns=[

re_path(‘^stiaic/(?P<path>.*)’,serve,{‘document_root’:settings.STATIC_ROOT}), # 用于处理static里的文件

re_path(‘^media/(?P<path>.*)’,serve,{‘document_root’:settings.MEDIA_ROOT}), # 用于处理上传的文件

]

然后在执行静态文件收集

python manage.py collectstatic  # 收集全部静态文件到STATIC_URL定义的路径内

然后重启你的uwsgi和nginx看看效果吧

这样就可以解决关了debug后静态文件丢失的问题,踩了n多坑之后总结出来的经验,分享给你们!

祝你们好运。(如果还没有成功,多试几次)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/04/03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Django设置 DEBUG=False后静态文件无法加载解决
前段时间调试一直是在Debug=True先运行的,没有什么问题。今天关闭了Debug后,出现了一个问题。就是静态文件找不到了,「img、css、js」都提示404,无法准确的访问 static 静态文件。
叉叉敌
2019/02/20
2.7K0
【Django 2.2文档系列】部署生产环境问题时,admin后台样式丢失处理(管理静态文件)
不知道各位有没有遇到过部署Django代码到生成环境时,把settings.py 中的DEBUG改为True后,发现admin后台页面的样式丢失了。页面虽然能打开,但是跟平时看到的页面不太一样,这就是没有正确的管理Django的静态文件。
BigYoung小站
2020/05/05
1.2K0
Django设置 DEBUG=False后静态文件无法加载解决
前段时间调试一直是在Debug=True先运行的,没有什么问题。今天关闭了Debug后,出现了一个问题。就是静态文件找不到了,「img、css、js」都提示404,无法准确的访问 static 静态文件。
py3study
2020/04/22
7.3K3
Django基础配置
TomatoCool
2023/07/30
1790
分离django中的媒体文件,静态文件
django项目中,占很大体积的是静态文件,媒体文件还有html代码,那我们该如何把它们分离出来以方便我们和服务器去管理和使用它们。
py3study
2020/01/05
1.9K0
CentOS 7+nginx+uwsgi部署Django项目
本文主要介绍服务器部署时Django需要的配置和uwsgi以及nginx的配置,不介绍Python的安装以及虚拟环境的安装创建,也不涉及Mysql数据库的安装以及配置,Python以及虚拟环境和Mysql的安装可以自行网上搜索,一般不会有坑,能顺利安装配置成功。
极简小课
2022/06/21
8430
Django 系列篇(二):配置篇(上)
创建一个项目之后,会自动在项目根目录下生成一个配置文件,即:settings.py
AirPython
2020/04/02
1K0
Django 系列篇(二):配置篇(上)
python测试开发django-97.设置DEBUG = False后静态资源不显示问题
设置DEBUG = False后,访问web页面,发现静态资源不显示,无法加载到静态资源。
上海-悠悠
2021/06/25
7890
python测试开发django-97.设置DEBUG = False后静态资源不显示问题
django配置文件详解_django配置redis
Django的配置文件settings.py用于配置整个网站的环境和功能,核心配置必须有项目路径、密钥配置、域名访问权限、App列表、中间件、资源文件、模板配置、数据库的连接方式
全栈程序员站长
2022/09/19
1.4K0
django配置文件详解_django配置redis
Django 实战:静态文件与媒体文件从开发配置到生产部署
在 Django 项目中,静态文件(Static Files)和媒体文件(Media Files)是两种不同类型的文件,需要不同的处理方式。
小王子1024
2025/07/17
480
Django 实战:静态文件与媒体文件从开发配置到生产部署
Django实现图片上传并前端页面显示
开始之前我们先确认环境中已经安装了Pillow,如果没有安装,可以通过pip install Pillow来安装,这个是python的图像处理库
iginkgo18
2020/09/27
2.8K0
Django实现图片上传并前端页面显示
python3+django2 开发易语言网络验证(下)
第六步:网络验证服务器端项目上线部署  前提 项目名:netauth 系统:百度云服务器下的Ubuntu16.4 软件:xshell(无论如何想办法用这个跟服务器实例连上,不要用远程连接干敲,不然你会有砸电脑的冲动)    FileZille(通过这个软件,将项目的zip包传到服务器系统下)   apt install unzip unzip netauth.zip rm netauth.zip 步骤目录: 1.安装nginx 2.安装python3.6 3.安装mysql 4.配置虚拟环境 5.安装配置u
玩蛇的胖纸
2018/06/08
1.3K0
Django---MTV模型、基本命令、简单配置
MTV模型 Django的MTV分别代表:        Model(模型):负责业务对象与数据库的对象(ORM)        Template(模版):负责如何把页面展示给用户        Vi
用户1214487
2018/01/24
3K0
Django---MTV模型、基本命令、简单配置
部署上线-部署Django项目
启动命令:python manage.py runserver 0.0.0.0:8000
星哥玩云
2022/09/14
1.7K0
部署上线-部署Django项目
Ubuntu上通过nginx部署Django笔记
目录[-] Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式。今天在Ubuntu上使用Nginx部署Django服务,虽然不是第一次搞这个了,但是发现还是跳进了好多坑,google了好久才搞定。想想还是把这个过程记录下来,免得下次再来踩同样的坑。 安装Nginx apt-get install nginx ubantu安装完Nginx后,文件结构大致为:   所有的配置文件都在 /etc/nginx下;   启动程序文件在 /usr/sbin/nginx下
jhao104
2018/03/20
1.5K0
nginx+uwsgi部署django项
  (i)pycharm-->Tools-->Run manage.py Task
py3study
2020/01/16
1K0
Pycharm开发Django项目加载静态文件教程
在一个网页中,不仅仅只有一个html骨架,还需要css样式文件,js执行文件以及一些图片等。因此在DTL中加载静态文件是一个必须要解决的问题。在DTL中,使用static标签来加载静态文件。要使用static标签,首先需要{% load static %}。加载静态文件的步骤如下:
用户2200417
2021/11/10
1.1K0
django 用户上传文件media
  在 setting 中的 TEMPLATES 下的 OPTIONS 中的 context_processors 中追加:
py3study
2020/01/21
2.1K0
django debug=false 时的静态路由设置
把DEBUG从True改成False后就会出现404(必需指定404和500错语页面,如上图的目录结构)找不到页面的错误。原因是DEBUG为 True时django会默认帮我们处理静态文件,而为False的话还需要我们做点事。在全局usrs.py中加下如下代码:
一朵灼灼华
2022/08/05
8330
相关推荐
Django设置 DEBUG=False后静态文件无法加载解决
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档