2015-04-02 69 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