静态文件

1.什么是静态文件

在django中静态文件是指那些图片、css样式、js样式、视频、音频等静态资源。

2.为什么要配置静态文件

这些静态文件往往不需要频繁的进行变动,如果我们将这些静态文件的路径写死,则不利于后期我们的操作。因此,我们需要在django中配置一下静态文件的路径,以便日后对静态文件的操作。

3.如何在django中配置静态文件

1)在setting.py中最下方配置如下数据:

STATIC_URL = '/static/' # 就是为静态文件的绝对路径起了一个别名,以后我们只需要用路径/static/即可
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "statics"),
] # 静态文件的绝对路径,就是第二步静态文件的创建路径

2)在项目文件下创建statics文件夹

3)接下来,我们在html文件里就可以引用静态文件了,如:

    <link rel="stylesheet" href="/static/bootstrap-3.4.1-dist/css/bootstrap.min.css">
<script src="/static/bootstrap-3.4.1-dist/js/jquery-3.6.0.min.js"></script>
<script src="/static/bootstrap-3.4.1-dist/js/bootstrap.min.js"></script> /static/...这里底层逻辑其实采用了django中URL相对路径的命名方法,
流程是:1.遇到/开头的相对地址,浏览器会把当前url的协议、ip和端口保留,然后拼接为127.0.0.1:8000/static/...
2.当发现路径是static时,django会在setting.py中找静态文件的路径,找到一个在项目文件下的statics文件夹,寻找静态文件资源!

此时,问题来了?大家注意到没有,模板层的/static/是写死的,这就使得静态文件的加载依然具有相当的局限性!例如,当产品经理需要你修改静态文件的别名时,规定当遇见statics时才是静态文件时,我们该怎么办??一个个的去模板里面修改路径吗??

此时,我们就需要考虑,当静态文件的路径变了当时候,我们应该如何一下子将模板里的static改成statics?为此,我们需要引用django种在一个名为static.py的文件中定义的static、get_static_prefix(了解)标签,二者都可以解决该问题!

    {% load static %} #注意:必须先加载文件static.py,这里的static不是指setting.py里面设置的别名!!
<link rel="stylesheet" href="{% static 'bootstrap-3.4.1-dist/css/bootstrap.min.css' %}">
<script src="{% static 'bootstrap-3.4.1-dist/js/jquery-3.6.0.min.js' %}"></script>
<script src="{% static 'bootstrap-3.4.1-dist/js/bootstrap.min.js' %}"></script>
<!--注意:此处的static是一个定义在static.py中的一个标签,名字与别名一样而已,不要搞混-->

当采用如上方式之后,在计算机渲染的时候,STATIC_URL =的别名,会动态的渲染给static,这样就不需要在手动的一个个修改模板层的静态文件地址了!

最新文章

  1. AppDelegate方法中文记录
  2. Python入门笔记(5):对象
  3. java数组的增删改查
  4. 神奇彩带KMP
  5. csuoj 1352: New Sorting Algorithm
  6. Java_LIST使用方法和四种遍历arrayList方法
  7. C++语言十进制数,CDecimal(未完成)
  8. rman catalog (rman 恢复目录)
  9. 读《effective C++》2
  10. python之路1
  11. DB Query Analyzer 5.05 is released, 65 articles concerned have been published
  12. linux yum+wget详解
  13. 在ListView中添加EditText丢失光标问题解决
  14. 20135234mqy-——信息安全系统设计基础第十四周学习总结
  15. OC ARC之基本使用(代码分析)
  16. Idea多个module下maven的pom.xml失效的问题
  17. ABP实战--项目结构
  18. Rhythmk 一步一步学 JAVA (20) JAVA enum常用方法
  19. stm32 IO口八种模式区别
  20. 在Nginx服务器上屏蔽IP

热门文章

  1. 【SpringSecurity系列3】基于Spring Webflux集成SpringSecurity实现前后端分离无状态Rest API的权限控制
  2. 腾讯云Redis全面升级,性能提升400%,可用性高达5个9
  3. c++ 树状数组
  4. JavasScript打印年月日时间代码
  5. 嵌入式中 动态阿拉伯语字符串 转换 LCD显示字符串【感谢建国雄心】
  6. Python实现中文字幕雨+源代码
  7. identityserver4 (ids4)中如何获取refresh_token刷新令牌token 使用offline_access作用域
  8. Codeforces Round #791 (Div. 2) A-C
  9. CesiumJS 2022^ 源码解读[7] - 3DTiles 的请求、加载处理流程解析
  10. android studio 初印象