Django2.0 static_root static_url media_root media_url 概述

本文详细解析了Django框架中静态文件(static)与用户上传文件(media)的区别及配置方法,包括STATIC_ROOT、STATIC_URL、MEDIA_ROOT和MEDIA_URL的设置,以及如何在项目中正确处理和收集静态资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先我们先搞清楚static目录和media目录的区别。
静态文件指像css,js,图片之类的文件,在Django里面静态文件的处理与一般的视图是不一样的。
静态文件的处理主要包括STATIC和MEDIA两类,Django中的定义是:
MEDIA:指用户上传的文件。
STATIC:主要指的是如css、js、jq、vue、图片等文件。

一、MEDIA_ROOT和MEDIA_URL
(1)MEDIA_ROOT:media_root可以理解为用户上传文件的绝对路径。在项目中,我们在setting.py文件对他进行设置,一般是这样的
在这里插入图片描述
(2)MEDIA_URL:MEDIA_URL是指从浏览器访问时的地址前缀,一般是这样的
在这里插入图片描述
可以随便设置一个

二、static_root 和 static_url
STATIC主要指的是如css、js、图片这样的文件,在settings里面配置STATIC_ROOT和STATIC_URL,配置方式与MEDIA_ROOT是一样的,但是要注意:
STATIC_ROOT与MEDIA_ROOT位置不能一样。
你懂我意思吧

STATIC文件一般保存在以下位置:
(1)STATIC_ROOT:在settings里面设置,一般用来放一些公共的js、css等
(2)app的static文件夹,在每个app所在文夹均可以建立一个static文件夹,然后当 运行collectstatic时,Django会遍历INSTALL_APPS里面所有app的static文件夹,将 里面所有的文件复制到STATIC_ROOT。因此,如果你要建立可复用的app,那么你要将该app所需要的静态文件放在static文件夹中。
也就是说一个项目引用了很多app,那么这个项目所需要的css,images等静态文件是分散在各个app的static文件的
当你要发布时,需要将这些分散的static文件收集到一个地方就是STATIC_ROOT
在这里插入图片描述
(3)STATIC文件还可以配置STATICFILES_DIRS,指定额外的静态文件存储位置。

STATICFILES_DIRS = ( os.path.join(HERE, "../app名字/static/").replace('\\', '/'), )

和static_root的路径不要重合!

以上

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值