我使用Assetic來包含Javascript文件,但在開發環境中使用時,/app_dev.php
被添加到URL的開頭,因此最終的url看起來像/app_dev.php/js/something.js
。嘗試加載JS時會導致404錯誤。當我從生產環境訪問網站時,網址不包含包括/app_dev.php
,並且一切正常。爲什麼我的開發人員前端控制器包含在資產URL中?
我可以添加一個條件來檢查它是否是開發環境,並在URL上調用str_replace
,但我想解決這個問題的根源,如果可能的話。
編輯
@gilden,我會明白,在開發中,他們將得到處理每一次,但網址只會導致404。
這裏是我的Assetic配置:
assetic:
debug: %kernel.debug%
use_controller: false
filters:
cssrewrite: ~
# closure:
# jar: %kernel.root_dir%/java/compiler.jar
# yui_css:
# jar: %kernel.root_dir%/java/yuicompressor-2.4.2.jar
這裏就是我如何使用它在我的模板(應用程序/資源/視圖/ base.html.php)
foreach ($view['assetic']->javascripts(
array('@AssetsBundle/Resources/public/js/*'), array(), array('output' => 'js/combined.js')) as $url) {
echo 'url: ' . $url . '<br />';
}
我那麼包括$ url使用我編寫的自定義幫助程序,但它已經包含app_dev.php。
這是預期的行爲 - 在開發環境中,您的腳本每次被Assetic處理以簡化開發。我猜Assetic沒有正確配置。你可以發佈關於Assetic的配置部分嗎?也很高興看到您的模板。 – gilden
啊!我甚至沒有想過在config_dev.yml中尋找。這解決了它。謝謝! –