当前位置: 首页 > news >正文

Django --静态文件

静态文件

除了由服务器生成的HTML文件外,WEB应用一般需要提供一些其它的必要文件,比如图片文件、JavaScript脚本和CSS样式表等等,用来为用户呈现出一个完整的网页。在Django中,我们将这些文件统称为“静态文件”,因为这些文件的内容基本是固定不变的,不需要动态生成。

对于小项目,这些都不是大问题,你可以将静态文件放在任何你的web服务器能够找到的地方。但是对于大型项目,尤其是那些包含多个app在内的项目,处理那些由app带来的多套不同的静态文件是个麻烦活。

但这正是django.contrib.staticfiles的用途:它收集每个应用(和任何你指定的地方)的静态文件到一个统一指定的地方,并且易于访问。

使用静态文件

首先在你的某个 app 目录中创建一个static目录(一定要注意,不是statics,不要多写了一个s)。Django将在那里查找静态文件,这与Django在appName/templates/中寻找对应的模板文件的方式是一致的。

Django的STATICFILES_FINDERS设置项中包含一个查找器列表,它们知道如何从各种源中找到静态文件。 其中一个默认的查找器是AppDirectoriesFinder,它在每个INSTALLED_APPS下查找static子目录,例如我们刚创建的那个static目录。admin管理站点也为它的静态文件使用相同的目录结构。

在刚才的static目录中新建一个<appName>子目录,再在该子目录中创建一个style.css文件。换句话说,这个css样式文件应该是polls/static/polls/style.css。你可以通过书写polls/style.css在Django中访问这个静态文件,与你如何访问模板的路径类似。

静态文件的命名空间

 
与模板类似,我们可以将静态文件直接放在appName/static(而不是创建另外一个 appName 子目录),但实际上这是一个坏主意。Django将使用它所找到的第一个匹配到的静态文件,如果在你的不同应用中存在两个同名的静态文件,Django将无法区分它们。我们需要告诉Django该使用其中的哪一个,最简单的方法就是为它们添加命名空间。也就是说,将这些静态文件放进以它们所在的应用的名字同名的另外一个子目录下(白话讲:多建一层与应用同名的子目录)。

良好的目录结构是每个应用都应该创建自己的urls、forms、views、models、tests、apps、templates和static,每个templates包含一个与应用同名的子目录,每个static也包含一个与应用同名的子目录。

{% static %}模板标签会生成静态文件的绝对URL路径。

http://www.lryc.cn/news/333584.html

相关文章:

  • 蓝桥杯第十三届省赛C++B组(未完)
  • 编程生活day7--明明的随机数、6翻了、吃火锅
  • css酷炫边框
  • 使用 Docker 部署 Photopea 在线 PS 工具
  • 回溯法(一)——全排列 全组合 子集问题
  • 【Pt】马灯贴图绘制过程 04-玻璃脏迹
  • Rust 程序设计语言学习——枚举模式匹配
  • 正则表达式(1)
  • nginx + keepalived 搭建教程
  • React事件和原生事件的执行顺序
  • 为什么在计算查询Q和键K的矩阵乘法时需要转置键矩阵K。示例说明q11,k11代表什么。线性变换矩阵 W_q 用于生成查询,W_k 用于生成键怎么获取的。
  • 剑指Offer题目笔记27(动态规划单序列问题)
  • 撸代码时,有哪些习惯一定要坚持?
  • 【leetcode面试经典150题】17.罗马数字转整数(C++)
  • 前后端开发之——文章分类管理
  • 第12届蓝桥杯省赛 ---- C/C++ C组
  • IVS模型解释
  • 通用开发技能系列:Git
  • 最新怎么订阅OnlyFans上喜欢的博主,详细教程
  • Mysql故障和优化
  • Windows系统C盘空间优化进阶:磁盘清理与Docker日志管理
  • 14届蓝桥杯 C/C++ B组 T7 子串简写 (字符串)
  • Android 系统大致启动流程
  • 【Web】2024红明谷CTF初赛个人wp(2/4)
  • stable-diffusion-webui安装教程
  • 如何魔改 diffusers 中的 pipelines
  • 解放办公室的利器!让证卡打印机轻松应对繁忙工作场景
  • 2012年认证杯SPSSPRO杯数学建模A题(第二阶段)蜘蛛网全过程文档及程序
  • ES学习日记(七)-------Kibana安装和简易使用
  • react 父子组件的渲染机制 | 优化手段