django:如何在模板中包含静态文件?

兰迪·唐(Randy Tang)

在Django项目中,我想在模板中包含一个静态文件。以下是项目结构:

proj/
   main/
      static/
         main/
            js/
               main.js
   news/
      templates/
        news/
           news.html

在中news.html,我想将包含main.js以下假设格式:

{% load staticfiles %}
...

{% include {% static 'main/js/main.js' %} %}

我该怎么做?

Koniiiik

我有两个主意。

最简单的方法是确保已启用文件系统加载器,并且在TEMPLATES[0]['DIRS'](以前是TEMPLATE_DIRS)中包含了包含静态文件的相关目录需要注意的是,除非您DIRS也在中列出了静态文件,否​​则它不会自动提取已安装的应用程序中包含的静态文件另一个选择是使用STATIC_ROOT,但这仅在collectstatic每次更改静态文件时都运行时才起作用,而在开发中通常不需要这样做。另一个陷阱是,它仅适用于本地静态存储,如果您使用任何CDN或以其他方式将您的静态文件托管在其他主机/网络/其他设备上,则不会。

您可以做的另一件事是编写自己的模板加载器,该加载器将使用静态文件API将静态数据加载为模板。这涉及更多,但是无论静态文件如何存储和提供服务,它都应该能够访问静态文件。

如果您选择任何一个选项,您仍然必须要小心。例如,您必须确保将要作为模板包含的静态文件安全地包含到HTML或您在其中使用它们的任何其他上下文中。不会发生转义。

如果您试图优化客户端必须发出的请求数量,则有更好的方法。您最好实现一些可以预处理和最小化静态文件的管道。将任何重要的CSS / JS块包含到HTML中将使客户端无法利用缓存,从而迫使他们一遍又一遍地重新下载相同的静态内容,这可能会对性能产生负面影响。

编辑:由于您只想包含一些动态JavaScript变量,因此根本不是静态文件。您真正想要的是创建一个包含JavaScript代码的模板,而不用将静态文件作为模板处理。没有规则可以说每个JavaScript都必须是静态文件。如果是动态文件,则它不是静态文件。

根据记录,这是XY问题的典型实例问题X在呈现模板时为JavaScript变量动态分配值。您想出了将静态文件包含在模板中作为潜在解决方案的方法,但后来陷入了问题Y,即您不知道如何在模板中包含静态文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在handlebars-django模板中引用静态文件

来自分类Dev

如何在handlebars-django模板中引用静态文件

来自分类Dev

django如何在模板中包含javascript

来自分类Dev

如何在Django 3.1中添加“模板”和“静态”文件夹

来自分类Dev

如何在Django模板的静态URL中传递queryset?

来自分类Dev

如何设置Django从模板读取存储在静态子文件夹中的静态文件

来自分类Dev

如何在Django模板中包含函数调用?

来自分类Dev

如何在wordpress模板中包含css文件

来自分类Dev

如何在WordPress php模板中包含PHP文件?

来自分类Dev

如何从Django模板生成静态html文件?

来自分类Dev

在Django 1.7中包含静态js文件

来自分类Dev

如何在Django中重命名“ admin”静态文件?

来自分类Dev

如何在代码完成运行文件时使包含的文件中的静态文件不重置?

来自分类Dev

django-如何在模板中插入上传文件的内容?

来自分类Dev

如何在Django模板中显示img文件?

来自分类Dev

django-如何在模板中插入上传文件的内容?

来自分类Dev

如何在Django的项目根目录之外包含静态文件

来自分类Dev

如何在go模板中包含不同文件夹中的文件

来自分类Dev

如何在需求文件中包含“ django-forms-bootstrap”

来自分类Dev

如何在Django中提供静态文件?

来自分类Dev

如何在多个模板中包含表单

来自分类Dev

如何在多个模板中包含表单

来自分类Dev

如何在C ++代码中包含模板?

来自分类Dev

如何在多个模板中包含表单

来自分类Dev

使用“包含”模板中的“静态”模板标签?

来自分类Dev

sbt-assembly:如何在src / main / webapp中包含静态文件

来自分类Dev

(Django) 如何将应用程序中的模板文件包含到模板中的 base.html 中

来自分类Dev

为Django中的所有模板加载静态文件

来自分类Dev

在我的Django模板中获取绝对静态文件URL

Related 相关文章

  1. 1

    如何在handlebars-django模板中引用静态文件

  2. 2

    如何在handlebars-django模板中引用静态文件

  3. 3

    django如何在模板中包含javascript

  4. 4

    如何在Django 3.1中添加“模板”和“静态”文件夹

  5. 5

    如何在Django模板的静态URL中传递queryset?

  6. 6

    如何设置Django从模板读取存储在静态子文件夹中的静态文件

  7. 7

    如何在Django模板中包含函数调用?

  8. 8

    如何在wordpress模板中包含css文件

  9. 9

    如何在WordPress php模板中包含PHP文件?

  10. 10

    如何从Django模板生成静态html文件?

  11. 11

    在Django 1.7中包含静态js文件

  12. 12

    如何在Django中重命名“ admin”静态文件?

  13. 13

    如何在代码完成运行文件时使包含的文件中的静态文件不重置?

  14. 14

    django-如何在模板中插入上传文件的内容?

  15. 15

    如何在Django模板中显示img文件?

  16. 16

    django-如何在模板中插入上传文件的内容?

  17. 17

    如何在Django的项目根目录之外包含静态文件

  18. 18

    如何在go模板中包含不同文件夹中的文件

  19. 19

    如何在需求文件中包含“ django-forms-bootstrap”

  20. 20

    如何在Django中提供静态文件?

  21. 21

    如何在多个模板中包含表单

  22. 22

    如何在多个模板中包含表单

  23. 23

    如何在C ++代码中包含模板?

  24. 24

    如何在多个模板中包含表单

  25. 25

    使用“包含”模板中的“静态”模板标签?

  26. 26

    sbt-assembly:如何在src / main / webapp中包含静态文件

  27. 27

    (Django) 如何将应用程序中的模板文件包含到模板中的 base.html 中

  28. 28

    为Django中的所有模板加载静态文件

  29. 29

    在我的Django模板中获取绝对静态文件URL

热门标签

归档