美文网首页
Django的STATIC_URL与STATIC_ROOT与ST

Django的STATIC_URL与STATIC_ROOT与ST

作者: 林木酸瓜 | 来源:发表于2019-07-31 15:24 被阅读0次

    涉及到的名词

    1. setting.py中的STATIC_URLSTATIC_ROOTSTATICFILES_DIRS

    他们都是存放静态资源的地方

    1. template模板中 staticstaticfiles

    一、 setting.py

    STATIC_URL = '/static/'
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, "commonStatic/")
    ]
    STATIC_ROOT = 'assert'
    

    STATIC_URL是在某个具体的App下新建static目录,用来存放与App相关的静态资源。
    STATICFILES_DIRS是在项目目录下新建commomStatic目录,用来存放多个App之间公共的静态资源。
    STATIC_ROOT是项目部署的时候才会用到的,是配合Nginx使用的。他的作用就是收集(复制)每个App下static中静态资源以及项目commonStatic中的静态资源到STATIC_ROOT对应的assert文件夹中。使用python manage.py collectstatic来做这一步操作。所以STATIC_ROOT 与 STATICFILES_DIRS的路径不能重复。

    二、template中{%load static%} 与 {%load staticfiles%}

    {%load static%} 无论是STATIC_URL引入的静态资源,还是STATICFILES_DIRS引入的静态资源,在html模板中使用的时候, 路径都为static。
    staticfiles 是早先版本为了处理非本地存储资源。

    在Django 1.10之前:staticfiles加载一个模板标签,可以管理静态不能(或不容易)的非本地存储;
    来自Django 1.10:contrib.staticfiles应用程序仍然存在但其模板标签将被删除只有{%static%}模板标签保留;
    从Django 2.0(我相信):{%load staticfiles%}被删除.

    👌 that's all!

    相关文章

      网友评论

          本文标题:Django的STATIC_URL与STATIC_ROOT与ST

          本文链接:https://www.haomeiwen.com/subject/stqgrctx.html