2014-07-06 62 views
2

我正在使用像amcharts這樣的庫,它有許多js文件。Symfony2 - 如何使用樹枝中的{%javascripts%}從web目錄中引用文件?

我把amcharts在web/js/amchartsas 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

編輯

要包括web下一個文件,試圖從你的路徑移除正斜槓即

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

了'資產()'函數可以被用來代替用'javascripts'如果創建一個資產集合你只能引用一個css/js文件。但請記住,資產不會被這種方式的任何過濾器處理。然而,'javascripts'只接受'@AcmeBundle'風格路徑並不是真的。 – nifr

+0

@nifr我一直無法獲得'javascripts'來處理'web'下的文件。如果可能的話,我更喜歡它 – FuzzyTree

+0

'{%javascripts%}'標籤只不過是配置一個新的資產集合,比如添加一個配置指令'assetic.assets。 。(輸入|過濾|輸出)'做。它只是返回輸出名稱作爲「asset_url」變量以正確的當前路徑分枝。您絕對可以將'web'文件夾中的文件添加到資產集合的輸入數組中。 – nifr

-1

假設你已經把你的JavaScript源命名xyz.js在「JS /」文件夾是源,那麼你將不得不通過您的「應用程序/資源/ base.html文件」文件魔神此獲取此JavaScript的:

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

,當剩餘樹枝文件擴展你喜歡base.html.twig如下:

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

它自動獲取你的JavaScript。即使你想修改該特定子樹枝的JavaScript的代碼,那麼你將不得不寫這樣的:

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

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

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