Django的静态文件

作者: Pope_Li | 来源:发表于2018-11-16 16:27 被阅读0次

    官方文档

    灵魂三问

    1.什么是静态文件

    除了由服务器生成的HTML文件外,网页应用一般需要提供其它必要的文件 —— 比如图片文件、JavaScript脚本和CSS样式表 —— 来为用户呈现出一个完整的网站。 在Django中,我们将这些文件称为“静态文件”。

    2.为什么要使用静态文件

    把静态文件的路径改成动态拼接的,避免在HTML页面中硬编码静态文件的导入路径.

    3.如何使用静态文件

    一般我们使用静态文件都会把文件放在static文件里边,并且在setting.py文件里边配置(配置方法)

    静态文件相关(动态配置)

    当你把储存静态文件的包改名字的时候,在HTML文档里边的所有需要静态文件的路径都得重新改这就很麻烦,这个时候我们可以采用下边的方法来解决:

    {% load static %}导入静态文件模块

    首先呢我们需要导入Django内置的static模块,在执行的时候它会去找setting.py文件里边的装静态文件的包是什么名字.


    静态文件

    导入方法:

    {% load static %}
    <img src="{% static "images/hi.jpg" %}" alt="Hi!" />
    

    引用JS文件:

    {% load static %}
    <script src="{% static "mytest.js" %}"></script>
    

    某个文件多处被用到可以存为一个变量

    {% load static %}
    {% static "images/hi.jpg" as myphoto %}
    <img src="{{ myphoto }}"></img>
    

    {% get_static_prefix %}手动拼接

    先获取静态文件包的别名然后再拼接静态文件(一般不使用这个)

    {% load static %}
    <img src="{% get_static_prefix %}images/hi.jpg" alt="Hi!" />
    

    补充

    {% load static %}方法说白了就是一个Django设置好的一个tag,我们也可以自己定义一个tag,达到一样的作用(如何自定义tag)

    from django import template
    from django.conf import settings
    # 生成一个注册的实例对象
    register = template.Library()
    @register.simple_tag(name="static") # name可以自定义
    def my_static(s):
      # 1.取到settings.py文件里的STATIC_URL的值
      s1 = settings.STATIC_URL
      #  2. 进行字符串拼接
      ret = s1 + s
      # 3. 返回
      return ret
    

    相关文章

      网友评论

        本文标题:Django的静态文件

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