Symfony2 - 如何在twig中使用{%javascript%}引用web目录中的文件?

时间:2014-07-06 22:44:48

标签: symfony assets assetic

我正在使用像amcharts这样的库,它们有很多js文件。

我将amcharts放在web/js/amcharts as suggested julesbou然后

{% block javascripts %}
    {{ parent() }}
    {% javascripts  '/js/amcharts/amcharts.js' %}
        <script src="{{ asset_url }}" type="text/javascript"> </script>
    {% endjavascripts %}
{% endblock %}

但我得到[exception] 500 | Internal Server Error | RuntimeException [message] The source file &quot;/amcharts/amcharts.js&quot; does not exist.

2 个答案:

答案 0 :(得分:2)

修改

要在web下包含文件,请尝试删除路径中的正斜杠,例如

{% javascripts  'js/amcharts/amcharts.js' %}
                 ^ remove / here

答案 1 :(得分:-1)

假设您已将名为xyz.js的javascripts源放入&#39; js /&#39;文件夹是源,那么你将不得不通过你的&#34; app / resources / base.html&#34;来获取这个javascripts。文件喜欢这个:

{% block javascripts %}
     <script src="{{ asset('js/xyz.js') }}" type="text/javascript"> </script>
{% endblock %}

当你在剩下的twig文件中扩展base.html.twig时,如下所示:

{% extends '::base.html.twig' %} 
  {% block display %}
  {% endblockdisplay %}

它会自动获取你的javascripts。即使您想要修改特定子twig的javascripts代码,您也必须像下面那样编写:

{% extends '::base.html.twig' %} 

    {% block display %}
     // Your display content here
    {% endblockdisplay %}

    {% block javascripts %}
       {{ parent() }}
        // Your changing code here
    {% endblockjavascripts %}