首页 python正文

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

启明SEO python 2022-03-20 16:05:22 1598 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总是安装不上怎么办

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

如何修改浏览器指纹,Canvas指纹、Webgl指纹、Audio指纹修改方法?

如何修改浏览器指纹,Canvas指纹、Webgl指纹、Audio指纹修改方法?

修改浏览指纹的方法其实也是很简单,主要使用到......

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

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

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