我们在使用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再加一个设置,具体如下图:
评论