关于Django中settings.py的STATIC_ROOT和STATICFILES_DIRS是什么、怎么用

前言:

之前在学校参加创新创业比赛的时候,应为用到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

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

)

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

urls.py

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

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

STATICFILES_DIRS是什么?

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

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

)

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拼命_小李

给点鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值