Django实现media、static静态资源通过url加载访问

Django项目中一般上传的静态文件会存储在根目录的media文件夹下,template模板使用的静态css、js、image等文件存在static目录下,所以如何配置mediastatic目录的静态访问?

官方文档:https://docs.djangoproject.com/en/4.0/howto/static-files/
How to manage static files (e.g. images, JavaScript, CSS)

修改setting.py配置文件

首先确认django.contrib.staticfilesINSTALLED_APPS配置项中


INSTALLED_APPS = [..."django.contrib.staticfiles",...
]

mediastatic文件夹位置需要修改setting.py配置文件,使项目指导文件夹位置在哪。具体配置如下:


STATIC_URL = "/static/"MEDIA_ROOT = "media"
MEDIA_URL = "/media/"  # 跟STATIC_URL类似,指定用户可以通过这个url找到文件

配置urls.py路由访问

urls.py文件中配置静态资源访问路由。


# 这是手动引用项目中的setting文件,如果是这样引用settings.STATIC_ROOT应该写成settings.STATIC_URL
# from hwblog import settings  from django.conf import settings  # 这是自动引用Django中的setting配置
from django.conf.urls.static import staticurlpatterns = ([# ... the rest of your URLconf goes here ......
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
)

扩展-STATICFILES_DIRS配置

在项目中有可能静态资源存储的位置不仅在static目录下,这时可以修改setting.py文件添加STATICFILES_DIRS配置增加多个静态资源目录,Django会在list中的目录去寻找url访问的资源。

# 设置django的静态文件目录列表
# 官方文档:https://docs.djangoproject.com/en/4.0/ref/settings/#std-setting-STATICFILES_DIRS
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static"),"D:\static\media\cakeimages",("download", "D:\static\download"),  # 通过(prefix, path) tuple形式对访问路径设置别名
]

增加配置后就可以通过http://127.0.0.1:8000/static/xxx.jpg来访问D:\static\media\cakeimages目录下的xxx.jpg资源。

别名的访问通过http://127.0.0.1:8000/static/download/meixi.jpg来访问D:\static\download目录下meixi.jpg资源。

Django实现media、static静态资源通过url加载访问相关推荐

  1. 【Javaweb】静态资源style.css加载不出来

    Javaweb项目中静态资源style.css加载不出来 1. 首先检查路径 这里定位到css文件夹下的style.css文件,随后进入该文件进行查看图片资源路径是否正确 使用的是相对路径,并无错误, ...

  2. Spring boot 默认静态资源路径与手动配置访问路径的方法

    这篇文章主要介绍了Spring boot 默认静态资源路径与手动配置访问路径的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下 在application.propertis中配置 ##端口号 s ...

  3. nginx配置静态资源html,通过nginx服务器访问静态资源(示例代码)

    通过nginx服务器访问静态资源 引言 之前在做毕设的时候接触过nginx,那时候是用来做前后端分离的.一转眼都快一年了,nginx的相关内容也忘的差不多了. 有过接触前端的同学都知道,直接在标签的s ...

  4. 静态资源部署到服务器不能访问

    静态资源部署到服务器不能访问 背景 前端静态资源部署到服务器后不能访问,手机上可以访问,发现是10080端口的锅,谷歌浏览器认为10080端口是不安全的端口

  5. vue-cli3.x正确打包项目,解决静态资源与路由加载无效的问题,history模式下配合使用nginx运行打包后的项目

    vue-cli3.x正确打包项目,解决静态资源与路由加载无效的问题,history模式下配合使用nginx运行打包后的项目 参考文章: (1)vue-cli3.x正确打包项目,解决静态资源与路由加载无 ...

  6. android: 静态XML和动态加载XML混合使用,以及重写Layout控件

    近期对android里面控件修改做了很多实验,由于公司需求很多,不得不重写很多控件.程序目标无非是:高效.轻巧.清晰.标准化 完成动态加载Layout有两种方法,依据个人喜好进行选择: 方法1:静态主 ...

  7. combotree 可以异步加载吗_Unity AssetBundle 资源打包,加载,本地缓存方式,安卓,PC本地加载路径问题...

    AssetBundle的定义和作用: 1,AssetBundle是一个压缩包包含模型.贴图.预制体.声音.甚至整个场景,可以在游戏运行的时候被加载. 2,AssetBundle自身保存着互相的依赖关系 ...

  8. Javafx的WebEngine的url加载不输出结果坑,gc回收了局部变量

    一.坑场景复现 源于w3cschool的JavaFX WebEngine测试例子,运行代码都没有输出,一直在研究为什么会出现这样的结果. 在测试过程中使用WebEngine的html加载,使用WebE ...

  9. Webpack实战(九):实现资源按需加载-资源异步加载

    第八篇[<教你搞懂webpack如果实现代码分片(code splitting)>] (https://blog.csdn.net/lfcss/article/details/104099 ...

最新文章

  1. MyBatis常用配置解析-environments标签
  2. 提高ASP.NET首页性能的十大方法
  3. RTMP中FLV流到标准h264、aac的转换
  4. php %3ch1%3e字体,phpWebSite搜索模块跨站脚本执行漏洞
  5. Java课堂作业03
  6. java 医疗监护_医疗监护仪解决方案
  7. JVM?干就完了!(一) - hello world
  8. QQ群无法下载视频和图片解决方案
  9. 『随笔』基本功与招式
  10. [转]奇虎360黑匣子之谜:暗藏后门盗取用户隐私
  11. 算法学习(九)之“宽度优先搜索”
  12. 毕业设计-基于 MAT LAB 的神经网络在股市预测中的应用
  13. Linux之NTFS、FAT32、exFAT各种格式硬盘挂载整理
  14. php重启后卡顿,电脑突然卡顿严重
  15. zabbix 服务部署!!!!
  16. 十分钟内让你看懂中国经济形势,房价为何上涨
  17. 孩子像谁软件在线测试,测测你像哪位明星软件
  18. 100天精通Oracle-实战系列 - 总目录
  19. 【产品设计】删除确认文案,猛男落泪
  20. matlab k l变换题目,K-L变换及例题技术分析.ppt

热门文章

  1. 国内大型的渲染农场中,做云渲染哪个平台更好?
  2. 重磅!「自然语言处理(NLP)」全球学术界”巨佬“信息大盘点(三)!
  3. 使用Scala编写Spark程序求基站下移动用户停留时长TopN
  4. 用最简单的方法配置运行OpenGL红宝书第9版源码示例
  5. 2018施耐德电气绿色能效全球创新案例挑战赛中国区总决赛闪耀收官
  6. 读书笔记-构筑企业护城河的四大方面
  7. hive初始化元数据的时候出现 Error:FUNCTION ‘NUCLEUS_ASCII‘ already exists解决方法
  8. SpringBoot整合邮箱发送验证码
  9. python去除数据列中的英文
  10. 以上帝视角进行资产梳理