2015-04-02 83 views
0

我有我的本地開發緩存css和js文件的Yii這個愚蠢的問題。當我嘗試編輯這個文件時,它並沒有顯示出這些變化,但是火焰確實被破壞了並且破壞了一切。這發生了一些不分青紅皁白的時間,然後它自行修復。緩存Yii的靜態文件

我Yii的配置是這樣的assetManager:

$config['components']['assetManager']['forceCopy'] = true; 
$config['components']['assetManager']['appendTimestamp'] = true; 
$config['components']['assetManager']['linkAssets'] = true; 

正如你可以看到下面,JS文件剛過領域賺取微薄的顏色改變鼠標的一個之後結束。

JS file just ends

似乎時間戳不包括它像所有其他資源時要附加到JS文件。

<script src="/custom/infobox.js?v=1427807792"></script> 
<script src="/js/neighbourhoods-map.js"></script> 
<script src="/js/search-block.js?v=1423510537"></script> 

通過在視圖文件中調用registerJsFile()來包含文件。

$this->registerJsFile('/js/neighbourhoods-map.js', [ 
    'depends' => ['\app\assets\MapsAsset'], 
    'position' => View::POS_END] 
); 

我改變了上面的內容以包含時間戳,但問題仍在發生。

$this->registerJsFile('/js/neighbourhoods-map.js?v='.time(), [ 
    'depends' => ['\app\assets\MapsAsset'], 
    'position' => View::POS_END] 
); 

這真是令人沮喪的處理。任何人都可以闡明問題在這裏?

+0

您是否看到附加到您的javascript src的時間戳?另外你不需要設置linkAssets爲「true」,除非你使用的是符號鏈接 – 2015-04-02 14:21:22

+0

@BalajiViswanath - 是的,它似乎沒有添加它,但它在那裏用於其他文件。我爲帖子添加了更多信息。 – SynackSA 2015-04-02 14:39:53

+0

您是否嘗試使用Chrome以外的瀏覽器來檢查所有瀏覽器是否存在此問題? – 2015-04-02 15:22:34

回答

0

我在使用vagrant和nginx時遇到了這個問題。

解決方法是關閉nginx配置中的sendfile指令。

sendfile off; 
+0

任何想法Apache可能會發生這種情況嗎? – SynackSA 2015-04-07 14:18:59

+0

我想我找到了等效的「EnableMMAP off」和「EnableSendfile off」 – SynackSA 2015-04-07 14:23:28