在 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 的最佳实践

django是否在模板中包含静态文件?

渲染视图在模板中包含 django 位置字段

在 Django HTML 模板中包含一个简单的函数

如何在我的自定义小部件模板中包含内置的 django 小部件模板?

如何在通过 pip 安装的应用程序中包含 django 模板?