在 django 模板中包含 javascript 的最佳实践

Posted

技术标签:

【中文标题】在 django 模板中包含 javascript 的最佳实践【英文标题】:best practice including javascript in django template 【发布时间】:2012-04-27 01:57:48 【问题描述】:

以前我曾经在模板中这样做

<html>
...
<script>
 % include "myapp/includes/jquery-1.7.1.min.js" %
% include "myapp/includes/myscript.js" %
</script>
...

但这会导致页面源上显示所有的js代码。

我的模板中没有使用任何Form,我可以使用Media类来添加js吗?

我应该只使用&lt;script src=".." 或链接 ref=".." 来添加 javascript 文件吗?哪种方式更好?

【问题讨论】:

【参考方案1】:

我知道这个问题已有 6 年历史,答案是该问题的准确答案。但不知何故,这在我的谷歌搜索结果中对我来说非常高,我想我会在这里发布更多信息,以帮助像我这样的人,寻找最佳实践。对内容、css 和 javascript 使用模板继承和块。

文档:

https://docs.djangoproject.com/en/2.0/ref/templates/language/#template-inheritance

还有一个 *** 示例,展示了如何使用 block.super 将另一个 js 文件添加到原始 js 块:

how to organize JS files in Django?

【讨论】:

【参考方案2】:

像往常一样使用&lt;script src="yourscript.js"&gt;&lt;/script&gt;,不带include模板标签。

Django include 模板标签并不意味着加载 JavaScript 源代码。它用于包含一个子模板,其标记可以访问包含模板的模板上下文。阅读here。

【讨论】:

并且,当您使用它时,开始使用 django_compressor django_compressor.readthedocs.org/en/latest/usage/#examples

以上是关于在 django 模板中包含 javascript 的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

在 django 模板中包含 javascript 的最佳实践

在 vue.js 模板 nuxt 中包含外部脚本

如何在 Haml 中包含内联 JavaScript?

在 thymeleaf 中包含 JavaScript 变量

如何在我的 Sendgrid 事务模板中包含 Jinja2 模板

如何在 Jinja2 中包含具有相对路径的模板