首页 > 解决方案 > 在 symfony4 树枝模板中分离 JavaScripts 文件

问题描述

我有一个关于如何分离指定模板树枝文件的加载指定javascript文件的问题。

例如,我得到了扩展 base.html.twig 的 admin.html.twig,在我得到的基础中

   {% block javascripts %}

      <script src="/assets/js/core/jquery.min.js"></script>
      <script src="/assets/js/core/popper.min.js"></script>
      <script src="/assets/js/core/bootstrap-material-design.min.js"></script>
      <script src="/assets/js/plugins/perfect-scrollbar.jquery.min.js"></script>

      <script async defer src="https://buttons.github.io/buttons.j"></script>
      <script src="/assets/js/plugins/chartist.min.js"></script>
      <script src="/assets/js/plugins/bootstrap-notify.js"></script>
      <script src="/assets/js/material-dashboard.min.js"></script>
      <script src="/assets/demo/jquery.sharrre.js"></script>
      <script src="/assets/js/sparkline.js"></script>
      <script src="/assets/js/plugins/chartjs.min.js"></script>
    {% endblock %}

我得到了像dashboard.html.twig这样的下一个文件,它扩展了一个admin.html.twig文件,我的问题是在dashboard.html.twig文件中,我得到了一个小小的自写小javascript代码,这个javascript当然使用 jquery 库,但是我在 base.html.twig 文件中加载了这个库,这是我在dashboard.html.twig 中的自写脚本的下一个。

我的问题是,例如,我如何加载我的小 javascript 代码(当然我可以将它保存在像 mycode.js 这样的单独文件中),但是如何仅在我使用的dashboard.html.twig 文件的这条路径和jquery之后加载已加载?因为在另一个路由器中我t need this mycode.js so I don不想把它放到 javascript 块中的 base.html.twig 文件中,知道吗?

标签: javascriptsymfonytwig

解决方案


如果dashboard直接扩展admin,那么您可以执行以下操作以确保加载所有管理脚本并添加dashboard特定脚本:

{% extends "admin.html.twig" %}
{% block javascripts %}
    {{ parent() }} {# execute the parent block, thus loading all scripts in admin #}
    <script src="/assets/js/dashboard/mycode.js"></script>
{% endblock %}

推荐阅读