当前位置:   article > 正文

关于Django中settings.py的STATIC_ROOT和STATICFILES_DIRS是什么、怎么用_re_path(r'^static/(?p.*)$

re_path(r'^static/(?p.*)$

前言:

之前在学校参加创新创业比赛的时候,应为用到Django框架进行网站的开发,但是当时大二的我还有接触到类似web的框架和网站开发的学习,自己在家憋了一周多,终于学会使用了Django进行简单网站的开发,但是框架的一些细节问题和配置问题并不是很明确,最近老师讲述了Django的框架,所以我决定在仔细的研究一下这个Django的配置的相关操作。

settings.py的配置:

1.BASE_DIR:获取项目的目录位置

2.SECRET_KEY:有关安全性问题的一个属性

3. DEBUG:设置成False之后看不到详细错误提示

 4.是为了限定请求中的host值,以防止黑客构造包来发送请求。只有在列表中的host才能访问

STATIC_URL是什么?

对外提供WEB访问时的URL地址

STATIC_ROOT是什么?

当DEBUG设置成False之后,下面的STATICFILES_DIRS下的静态文件将会失效,那么如何此时STATIC_ROOT将会发挥它重要的作用

settings.py

  1. STATIC_URL = '/static/'#这个静态文件的名称必须和项目里面的文件名称相同,对外提供WEB访问时的URL地址
  2. STATIC_ROOT = os.path.join(BASE_DIR,'static1')## 执行collectstatic命令后会将项目中的静态文件(包括STATICFILES_DIRS、自带admin的静态文件)收集到该目录下面来(所以不应该在该目录下面放置自己的一些静态文件,因为会覆盖掉)
  3. # 设置图片等静态文件的路径,# 开发阶段放置项目自己的静态文件,不能包含STATIC_ROOT路径
  4. STATICFILES_DIRS = (
  5. os.path.join(BASE_DIR, "static"),#这个静态文件的名称必须和项目里面的文件名称相同
  6. )

我们在dos(针对windows)中执行 命令(在对应的项目中执行命令)python manage.py collectstatic他会将STATICFILES_DIRS和下的静态文件和admin静态文件放到我在STATIC_ROOT 中命名为static1中,成功之后static1将会有对应所有的静态文件,这个时候STATICFILES_DIRS已经没有了用处。但是在urls.py中还需要添加对应语句才可以。

urls.py

  1. from . import settings#导入settings.py
  2. from django import views
  3. urlpatterns = [
  4. path('admin/', admin.site.urls),
  5. re_path(r'^hello/(?P<int>\d+)/',search.HelloWorld),
  6. re_path(r'^static/(?P<path>.*)$', views.static.serve, {"document_root": settings.STATIC_ROOT}),
  7. path('check/',search.LoginCheck),
  8. ]

 re_path(r'^static/(?P<path>.*)$', views.static.serve, {"document_root": settings.STATIC_ROOT})这是关键!

STATICFILES_DIRS是什么?

当DEBUG设置成False之后,该静态目录已经失效,只有在为True的时候才会可以使用里面的静态文件

  1. STATICFILES_DIRS = (
  2. os.path.join(BASE_DIR, "static"),#这个静态文件的名称必须和项目里面的文件名称相同
  3. )

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/489555
推荐阅读
相关标签
  

闽ICP备14008679号