首页 python正文

Django debug设置为False后,静态文件访问404怎么办呢

启明SEO python 2022-03-20 16:05:22 171 0 Django404

我们在使用Django 开发的时候,debug模式是开启的,也就是DEBUG=TRUE,这个时候静态文件的访问根据官方配置即可。


URLS.PY中设置代码如下:

from django.conf import settings
from django.contrib.staticfiles import views
from django.urls import re_path

if settings.DEBUG:
    urlpatterns += [
        re_path(r'^static/(?P<path>.*)$', views.serve),
    ]

SETTINGS中设置

STATICFILES_DIRS= [BASE_DIR/'static']

但是,如果我们将DEBUG=False,这样就无效了。若想能够正常访问,我们必须要设置SETTINGS:

STATIC_ROOT=os.path.join(BASE_DIR,'static')

而当我们设置STATIC_ROOT后,一般都会STATICFILES_DIRS就会报错,刚开始我以为STATICFILES_DIRS必须要有,所以想尽办法没搞好。最后试着注释掉,发现也可以运行。所以最后SETTINGS中设置如下:

STATIC_URL = '/static/'

STATIC_ROOT=os.path.join(BASE_DIR,'static')

接着我们需要再来设置URLS.PY了,增加以下代码:

from django.conf import settings
from django.views import static
if settings.DEBUG==False:
    urlpatterns+=[
        re_path(r'^static/(?P<path>.*)$',static.serve,{'document_root':settings.STATIC_ROOT}),
      
    ]

这样设置好后,我们的静态文件就都可以访问了,在前端访问静态文件有两种方式,格式如下:

<link href="{% static '/awesome/css/font-awesome.css'%}" rel="stylesheet">
<link href="{{ STATIC_URL }}css/style.css?ver=1.4" rel="stylesheet">

按照以上设置,可以使用第一种方式引用,但是如果用下面引用方式,就得在SETTINGS再加一个设置,具体如下图:

Django debug设置为False后,静态文件访问404怎么办呢


评论

Python好学公众号

好文推荐

实时访客入口页面出现bd_vid=标识是什么原因

实时访客入口页面出现bd_vid=标识是什么原因

最近查看百度实时访客,总是会看到入口页面会多......

有了微信视频号,但是没有发布权限,怎么开通

有了微信视频号,但是没有发布权限,怎么开通

视频号是微信在2020年1月19号开始内测的......

如何用python抓取爱企查企业信息

如何用python抓取爱企查企业信息

前段时间,经理让我去找一些企业的信息,我平常......

服务器配置低,宝塔面板安装IIS总是安装不上怎么办

服务器配置低,宝塔面板安装IIS总是安装不上怎么办

对于一般企业网站或者博客来说,对服务器的配置......

win10下安装MYSQL后,提示Can't connect to MySQL server on localhost (10061)相关问题解决方法

win10下安装MYSQL后,提示Can't connect to MySQL server on localhost (10061)相关问题解决方法

我遇到的问题是电脑原先安装过mysql,卸......

python+selenium+Chrome options参数设置详解

python+selenium+Chrome options参数设置详解

ChromeOptions常用的行为一般有......