在Django中有选择地加载JavaScript文件

时间:2017-04-01 22:22:58

标签: javascript jquery django performance

我在Django中有一个博客应用的Post模型。它有一个名为body的字段。在帖子中,我可能会使用Latex,所以我需要使用MathJax.js。在某些帖子中,我添加了代码段,因此我使用了highlight.js。在一些我使用两者,在一些我不使用它们。

我想加载相关的javascript,具体取决于body模型的Post字段(类似于THIS)。如何使相关的.js文件自动加载?

我知道我可以添加指标字段,例如hasLatexTrueFalse)或hasCodeTrueFalse) 。但我很懒,我希望自动扫描Post.body,只加载相关的js文件。

1 个答案:

答案 0 :(得分:0)

在您的上下文中设置内容或使用模板上下文处理器。例如,如果form键是我的上下文,我加载处理表单的代码。对于我几乎每个页面都想要的东西,我在上下文中放了一个no_something来禁用它。这是通过在基础模板中围绕标记添加条件来完成的。如果变量不存在或为假,则不会显示。

我还做的是将我的静态文件放在我的上下文中的列表中。 JavaScript位于context['js']context['css']位于css。那些在我的标题中循环。我可以在基类中实现get_context_data,并且从中扩展的所有视图都将包含javascript和css文件。