STATIC_URL、STATIC_ROOT、STATICFILES_DIRS三者区别

本文详细介绍了Django项目中静态文件的配置方法,包括STATIC_URL、STATIC_ROOT和STATICFILES_DIRS的作用及使用方式,并解释了如何在部署时正确配置静态文件。

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

一、STATIC_URL

作用是通过url直接访问在项目中的静态文件。

二、STATIC_ROOT

#the dir for command "python manage.py collectstatic"
STATIC_ROOT = os.path.join(BASE_DIR, "collect_static")

#locate the common static files
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'common_static')
]

部署django项目的时候需要用到STATIC_ROOT ,它是收集所有的静态文件并放在一个目录里,即STATIC_ROOT指向的目录里。

执行完python manage.py collectstatic后,将静态文件复制到STATIC_ROOT指定的目录中。

 

三、STATICFILES_DIRS

STATIC_ROOT 是在部署的时候才发挥作用, 而实际情况下,静态文件的一般安放位置有两种:

1、在每个app里面新建一个static文件夹,将静态文件放到里面,在加载静态文件时,比如要在模板中用到静态文件,django会自动在每个app里面搜索static文件夹。

所以,不要把文件夹的名字写错哦, 否则django就找不到你的文件夹了。

2、在所有的app文件外面,建立一个公共的文件夹, 因为有些静态文件不是某个app独有的,那么就可以把它放到一个公共文件夹里面,方便管理。

注意,建立一个公共的静态文件的文件夹只是一种易于管理的做法,但是不是必须的,app是可以跨app应用静态文件的,因为最后所有的静态文件都会在STATIC_ROOT里面存在。

那现在的问题是如何让django知道你把一些静态文件放到app以外的公共文件夹中呢,那就需要配置STATICFILES_DIRS了

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'common_static'),
)

STATICFILES_DIRS告诉django,首先到STATICFILES_DIRS里面寻找静态文件,其次再到各个app的static文件夹里面找。

注意, django查找静态文件是惰性查找,查找到第一个,就停止查找了。

 

转载:https://www.cnblogs.com/horizonli/p/9214423.html

转载:https://blog.csdn.net/u013967628/article/details/83350741

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值