Django静态资源的路径主要通过STATIC_URL和STATICFILES_DIRS来设置,由此实现不同的管理方式。

管理方式

Django中管理静态资源一般有两种方式。
第一种是在每个应用(app)的目录下都有一个static文件夹,该应用的静态资源就存放在这里面。
目录结构如下:

mysite/manage.pymysite/__init__.pysettings.pyurls.pyasgi.pywsgi.pystatic/blog/__init__.pysettings.pyurls.pyasgi.pywsgi.pystatic/

第二种是在与应用同级的目录下创建一个static文件夹,然后再在这个文件夹中进行区分不同应用的静态资源,这种方式可以对所有静态进行统一的管理。
目录结构如下:

mysite/manage.pymysite/__init__.pysettings.pyurls.pyasgi.pywsgi.pyblog/__init__.pysettings.pyurls.pyasgi.pywsgi.pystatic/

setting.py中的设置

用上面的应用blog来举例,当访问blog应用中的网页时需要静态资源时,会去blog应用下的static文件夹中寻找。这种就是上面提到的第一种管理的方式。

STATIC_URL设置的是在访问静态资源时需要通过该url,例如要访问位于static文件夹下名为x的图片,那么可以这么访问 127.0.0.1:8000/static/x.jpg,如果修改STATIC_URL=’/top/,那么刚刚那样就不能再访问静态资源了,需要这样进行访问127.0.0.1:8000/static/x.jpg

Django有一个STATICFILES_DIRS能用来设置静态资源路径。
通常是这样的形式:

"""Django官网的描述如果你想用一个额外的命名空间来引用其中一个位置的文件,你可以可选的提供一         个前缀作为 (prefix, path) 的元组,例如:
"""
STATICFILES_DIRS = [( BASE_DIR / "static"),  # 设置一个总的静态资源路径'/var/www/static/',
]

STATICFILES_DIRS 中可以指定多个静态资源路径,一般用于实现上面所说的第二种的管理方式。STATICFILES_DIRS指定一个static文件路径,然后所有应用的静态资源都存放在这个下面。

在使用第一种管理方式的时候,一般来说有些静态资源并不一定就是一个应用会使用到,有可能多个应用都要使用一些相同的静态资源,那么可以再使用第二种管理方式,将一些共用的资源放在一起。这时候就会出现一个问题,Django无法区分要使用本应用下的静态资源还是外层的静态资源,这时可以给外部静态资源路径添加一个prefix,用于区分。

STATICFILES_DIRS = [#  (prefix, path)("out", BASE_DIR / "static"),  # 设置一个总的静态资源路径'/var/www/static/',
]

设置了prefix之后,可以用这样的形式来访问外层文件夹的静态资源(假设static下有bg.img这个文件):

 {{ static "out/bg.img"}}

当需要访问外层静态资源就加上 设置的prefox/ 然后再加上资源的路径,访问本应用中的直接写资源路径即可。

参考链接:
Django官网 STATICFILES_DIRS
Django官网 管理静态文件

Django静态文件的管理相关推荐

  1. Django静态文件处理、中间件及Admin站点

    Django静态文件处理.中间件及Admin站点 文章目录 Django静态文件处理.中间件及Admin站点 一.静态文件 1.简介 2.示例 3.配置静态文件 二.中间件 1.简介 2.示例 3.异 ...

  2. 解决Django静态文件配置pycharm高光问题

    就困扰了我半天的Django静态文件配置问题 更改了setting 文件后 文件参考问题总会高亮让然觉得又错误怪怪的 所以索性直接眼不见心不烦 具体操作如下图: 就这样就可以啦 大功告成! 也顺便提一 ...

  3. Django 静态文件处理

    Django 静态文件处理 前言 配置 staticfiles STATIC_URL STATICFILES_DIRS STATIC_ROOT 前言 Django的静态文件不能像html那样直接放上图 ...

  4. doraemon的python(大更新) django静态文件的配置(出错多的地方)

    ### 12.2 静态文件的使用#### 12.2.1静态文件的配置和使用 settings.py```python STATIC_URL = '/static/' #别名 STATICFILES_D ...

  5. Django/静态文件/apps配置/模型/数据库/shell

    一.debug和basedir 1.debug 2.basedir 当前文件的上一级的上一级绝对路径:/root/PycharmProjects/bookmanage # Build paths in ...

  6. 各种 django 静态文件的配置总结【待续】

    2019独角兽企业重金招聘Python工程师标准>>> 最近在学习django框架的使用,想引用静态css文件,怎么都引用不到,从网搜了好多,大多因为版本问题, 和我现在的使用的da ...

  7. Django静态文件一瞥

    配置 1.在INSTALLED_APPS设置项中确认包含django.contrib.staticfiles 2.增加STATIC_URL设置项,值为一个字符串(路径),必须以'/'结尾 3.在模板中 ...

  8. Django静态文件配置

    本文目的 最近用django开发项目,发现django的静态文件(js,css和img等)配置比较麻烦,开发环境和生产环境的配置还不一样,这里记录一下,作为备忘.我当前使用的版本是django v1. ...

  9. Django,静态文件配置

    保证django能正常运行的几个注意事项 1.保证你的计算机名不能是中文 2.一个pycharm窗口就对应一个项目(工程) 3.文件路径命名尽量不要用中文 4.启动django确保端口不能重复 5.新 ...

最新文章

  1. 移动端页面——js控制制作
  2. 海南省长沈晓明:海南自贸区先导性项目取得阶段性进展
  3. [数据结构] 时间复杂度计算
  4. CCF-CSP 201703-1 试题名称: 分蛋糕
  5. markdown 表格对齐方式、换行、内嵌列表、...
  6. 万万没想到,线程居然被饿死了!
  7. ctr z撤回反向_matplotlib 3D图上的反向Z轴
  8. (map)出现最多的数
  9. Costco的中国门徒已经参透了零售成功秘笈
  10. springboot+vue+element+mybatisplus项目(后端)
  11. 基于用户滚动应用CSS
  12. 通过 AnyTrans 将照片从 Mac 传输到 iPhone,无需 iTunes
  13. 暴风影音去广告补丁NSIS代码开放
  14. python 知乎美女_听说知乎大神用python爬取高颜值美女,是怎么操作的?
  15. 传奇 SF 开服架设流程详细介绍:
  16. 应用程序无法找到入口
  17. 深度学习入门指南:从零开始TinyMind汉字书法识别
  18. 在线项目管理软件的重要性
  19. 2022-2027年中国人力资源外包服务行业市场全景评估及发展战略规划报告
  20. 内存、主存、外存、主存储器、外存储器等之间的区别

热门文章

  1. 基于java中国象棋游戏
  2. 免费的小程序微商城系统它不香吗?
  3. oracle utl_file权限,Oracle内建包UTL_FILE使用说明
  4. Java面向对象与代码编写
  5. 电路板设计时的注意事项
  6. 基于java大学生创业众筹系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
  7. 为什么抖音张同学这么火爆?用 Python 分析 1w+条评论数据,我发现了其中的秘密
  8. python办公自动化ppt_最全总结 | 聊聊 Python 办公自动化之 PPT(下)
  9. 2022图像翻译/扩散模型:UNIT-DDPM: UNpaired Image Translation with Denoising Diffusion Probabilistic Models
  10. eclipse中启动tomcat报错:系统找不到指定路径