将所有Javascript移动到Django中的单独文件

时间:2015-04-17 13:54:57

标签: javascript django django-templates

我从Django开始做一些事情。我想保持html文件干净,没有<script>块。是否有可能,即使我的js部分正在使用{% url %}块?

示例:

page.html

<div> 
<h1> My home url is: </h1>
<div id="js-tag" ></div>
</div>
<script>
$(function(){
  $('#js-tag').html("{% url 'home' %}")
});
</script>

我想要删除它并将其放在单独的js文件中,然后将其导入page.html

2 个答案:

答案 0 :(得分:3)

(差不多)Django一切皆有可能! ;)

您只需将JavaScript代码放在单独的HTML文件中,然后将其简单地包含在主模板中(此处:page.html),如下所示:

{% include 'path/to/my/template_file/js_code.html' %}

答案 1 :(得分:2)

您可能希望使用django-js-reverse能够在js文件中使用命名的URL模式。 您还可以使用staticfiles应用来管理Django中的静态资产。

这将允许您以这种方式包含您的js文件:

{% load static %}  {# Only load static once at the top of your file #}
<script src="{% static 'path/to/js/in/staticfiles.js' %}"></script>

在js文件中你可以使用:

$('#js-tag').html(Urls.home());