美文网首页
Django - 模板中加载静态文件

Django - 模板中加载静态文件

作者: 前端程序猿 | 来源:发表于2018-12-13 00:23 被阅读0次

接着 模板结构优化 往下讲

  • 确保mysite/setting.pyINSTALLED_APPS 已经安装了 django.contrib.staticfiles

  • 确保 mysite/setting.py 中设置了 STATIC_URL

  • 在已经安装的 app 下创建 static 文件夹,并将该应用的静态资源存放在里面 : front/static/suolong.jpg

    templates/index.html

    {% block content %}
        <img src="/static/suolong.jpg" alt="suolong">
    {% endblock %}
    
  • mysite/setting.pySTATIC_URL 值是可变的,这样以后引用静态资源的路径都要根据 STATIC_URL 是新值去修改,因此我们需要使用 {% load static %}

    templates/index.html

    {% extends 'base.html' %}
    {% load static %}
    
    {% block content %}
        <img src="{% static 'suolong.jpg' %}" alt="suolong">
    {% endblock %}
    
  • 公共资源路径

    在更目录下创建 static 文件夹

    static/style.css

    body {
        background-color: #abcdef;
    }
    

    mysite/setting.py

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

    mysite/base.html

    {% load static %}
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <link rel="stylesheet" href="{% static 'style.css' %}">
    </head>
    
  • 在每个需要加载静态资源文件的模板中都要写 {% load static %}, 为了不在每个模板中都写,我们可以吧 static 变为 DTL 模板标签

    mysite/setting.py

    TEMPLATES = [
        {
          'OPTIONS': {
              'builtins': [
                  'django.templatetags.static'
              ]
          },
        },
    ]
    

    这样就不用在每个页面中引入{% load static %}

相关文章

网友评论

      本文标题:Django - 模板中加载静态文件

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