我正在使用django模板和django压缩器来加载我的JavaScript文件。Django模板似乎没有按正确的顺序加载Backbone.js
base_layout.html:
...
<!-- common imports for all templates -->
{% compress js %}
<script type="text/javascript" src="/static/js/api/jquery-2.2.0.js"></script>
<script type="text/javascript" src="/static/js/api/materialize.js"></script>
<script type="text/javascript" src="/static/js/api/easychem.js"></script>
<script type="text/javascript" src="/static/js/styling/menu_helper.js"></script>
<script type="text/javascript" src="/static/js/api/underscore.js"></script>
<script type="text/javascript" src="/static/js/api/backbone.js"></script>
{% endcompress %}
<!-- custom js imports that each template decides to load -->
{% compress js %}
{% block custom_js %}{% endblock %}
{% endcompress %}
...
compoundReportCard.html
...
{% block custom_js %}
<script type="text/javascript" src="/static/js/styling/scrollspy_helper.js"></script>
<script type="text/javascript" src="/static/js/styling/buttons_helper.js"></script>
<script type="text/javascript" src="/static/js/models/Compound.js"></script>
{% endblock %}
...
Compound.js
var Compound;
Compound = Backbone.Model.extend({});
当网页加载完毕后,我得到了以下错误:
Compound.js:4 Uncaught ReferenceError: Backbone is not defined(anonymous function) @ Compound.js:4
我之前得到这个错误时,该文件Compound.js Backbone.js的
但在此之前的负载,如果我做到以下几点:
(请注意,我现在在base_layout.html加载Compound.js文件文件)
base_layout.html
...
<!-- common imports for all templates -->
{% compress js %}
<script type="text/javascript" src="/static/js/api/jquery-2.2.0.js"></script>
<script type="text/javascript" src="/static/js/api/materialize.js"></script>
<script type="text/javascript" src="/static/js/api/easychem.js"></script>
<script type="text/javascript" src="/static/js/styling/menu_helper.js"></script>
<script type="text/javascript" src="/static/js/api/underscore.js"></script>
<script type="text/javascript" src="/static/js/api/backbone.js"></script>
<!--- note this!!! -->
<script type="text/javascript" src="/static/js/models/Compound.js"></script>
{% endcompress %}
<!-- custom js imports that each template decides to load -->
{% compress js %}
{% block custom_js %}{% endblock %}
{% endcompress %}
...
我没有得到任何错误。
似乎django模板在第一种情况下以不同顺序加载javascript文件,当我使用“custom_js”块时。我对吗?还是我误解了一些东西?我该如何解决这个问题?我只想为compoundReportCard.html加载Compound.js文件
浏览器实际上加载你的JS文件不是django,Django模板只是创建最终结果html。你的问题在其他地方,查看源将向你显示django将它们放入的顺序,这是你指定的顺序。如果您在