栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Django静态文件的管理

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django静态文件的管理

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

管理方式

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

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py
        static/
    blog/
	    __init__.py
	        settings.py
	        urls.py
	        asgi.py
	        wsgi.py
	        static/

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

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py
    blog/
	    __init__.py
	        settings.py
	        urls.py
	        asgi.py
	        wsgi.py
	static/
setting.py中的设置

setting.py中的STATIC_URL的默认值是’/static/’,这个代表的是从每个应用下的static文件夹中进行寻找静态资源。用上面的应用blog来举例,当访问blog应用中的网页时需要静态资源时,会去blog应用下的static文件夹中寻找。这种就是上面提到的第一种管理的方式。

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官网 管理静态文件

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/487241.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号