【问题标题】:Django extended template is not loading base JS at timeDjango 扩展模板没有加载基础 JS
【发布时间】:2018-01-07 16:20:26
【问题描述】:

我在 Django 1.11 中有一个 base.html,其中包含所有脚本引用。

然后,我有另一个 page.html,它使用 {% extends base.html %} 和 {% block content %} / {% endblock content %} 标签扩展 base.html。

嗯。在 base.html 中,我引用了 Chartjs.js 插件。在 page.html 中,如果我尝试调用 Chart() 函数或只是 $ jquery,我会得到“函数未定义”。如果我打开控制台调试器并尝试调用 $ 或只是 Chart(),它可以工作。所以我认为加载时间有问题。 page.html是在js下载或请求之前渲染的!

我该如何解决?我以前也做过,不知道是什么问题。

谢谢!

【问题讨论】:

  • 请给你base.html的代码!
  • 你确定js文件请求正确吗?检查您的服务器堆栈上的 http 请求代码。
  • 我正在添加 base.html 代码。是的。我可以从调试器控制台调用这些函数。

标签: javascript django


【解决方案1】:

如果没有显示您的代码,很难说。根据您写的内容,也许您忘记放置一个块和 block.super 来获取父级(base.html 的)Chartjs 参考。

这应该在您的 {% endblock content %} 标记之后的 page.html 中。请参阅下面的示例(使用 DataTables 作为示例,因为您的代码未显示):

</div>

{% endblock content %}
{% block javascript %}
  {{ block.super }}
<script type="application/javascript">

$(document).ready(function () {
  $('#table').DataTable({
    responsive: true,
  });
});
  </script>
{% endblock javascript %}

Base.html 将 js 部分包含在

{% block javascript %} …. {% endblock javascript %}

【讨论】:

  • 非常感谢!我在将代码放入堆栈溢出时遇到了问题。
猜你喜欢
  • 1970-01-01
  • 2016-12-17
  • 1970-01-01
  • 1970-01-01
  • 2011-09-14
  • 1970-01-01
  • 2020-06-17
  • 2013-10-11
  • 2014-07-05
相关资源
最近更新 更多