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中的设置

用上面的应用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官网 管理静态文件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django是一个使用Python编写的开源Web应用框架,它提供了一套完整的解决方案,用于快速开发安全可靠的Web应用程序。在Django中,HTTPS和静态文件是两个不同的概念,我将分别为你介绍。 首先是HTTPS(Hypertext Transfer Protocol Secure),它是HTTP的安全版本。通过使用SSL(Secure Sockets Layer)或TLS(Transport Layer Security)协议,HTTPS可以对传输的数据进行加密,确保数据在传输过程中的安全性。在Django中启用HTTPS需要进行一些配置,包括在Web服务器上配置SSL证书和相关的设置。具体的配置步骤可以参考Django官方文档或者其他相关教程。 接下来是静态文件,包括CSS、JavaScript、图片等在Web应用中使用的静态资源。在Django中,可以通过配置静态文件路径和URL来管理和提供静态文件。首先,在Django项目的设置文件中,需要指定静态文件的存路径,例如: ``` STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static') ``` 其中`STATIC_URL`是静态文件的URL前缀,`STATIC_ROOT`是静态文件的存路径。然后,在Django的URL配置文件中,需要添加一个URL模式来处理静态文件的请求,例如: ``` from django.conf import settings from django.conf.urls.static import static urlpatterns = [ # ...其他URL模式... ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) ``` 这样配置后,当访问静态文件的URL时,Django会自动从指定的静态文件路径中查找并返回对应的文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值