2012-08-10 25 views
5

我通過資產(在一個目錄中的所有腳本在樹枝中的塊)壓縮我的JavaScript,它可以在產品模式下正常工作。現在我想爲我的prod env使用調試模式,因此我將資源切換到配置中的調試,清除緩存並通過調試轉儲資源。Symfony 2.0資產轉儲在調試模式下產生錯誤的名稱

這適用於某些javascripts,但不是全部。 Symfony爲它們添加了一個後綴數字,這個數字在網站(javascript標籤)上與真實文件相反更高(一個)。有時清理緩存和傾倒再次解決了這個問題,但這次沒有爭議。

例如: 它轉儲:/web/js/main_part_3_jquery-ui_6.js 但用途:/web/js/main_part_3_jquery-ui_1.js

那麼,如何解決這個問題?

編輯: 清理緩存後,wron後綴不會出現在對站點的第一次請求中。

+0

什麼命令你用於資產轉儲? – 2012-08-15 09:46:05

+0

assetic:dump --env = prod – Johni 2012-08-15 11:31:26

+1

這是資產調試模式產生多個文件的預期行爲。你爲什麼要在prod中使用調試模式? (即:「現在我想用我的prod環境調試模式」WTF?) – AdrienBrault 2012-08-18 15:04:10

回答

3

由於app/console assetic:dump適合緩存yml文件 - 每次更改配置時都應清除緩存以便轉儲資產。

最重要的是要做到在這個序列:

rm -rf app/cache/* 
app/console assets:install web 
app/console assetic:dump 

當然,與調試鍵,需要環境等

+2

是的,我試圖手動刪除緩存,也沒有解決問題。還有一個問題是,它在我的開發機器上運行(Win),而不是在服務器上運行(Linux)。 – Johni 2012-08-10 13:05:49

2

我曾多次產生的資產和symfony中的類似的問題不包括展出的好東西。

這是因爲在我的情況下啓用了緩衝區緩存,並且顯然配置錯誤。 (顯然,當你需要新版本的文件時它是有用的,例如當你在dev中更新.js但不想破解產品時)

因此,在config.yml中禁用它將修復它。

 
assetic: 
    workers: 
     cache_busting: 
      enabled: false 
相關問題