我在使用 Yii 时遇到了这个愚蠢的问题,我的本地开发人员缓存了 css 和 js 文件。当我尝试编辑文件时,它没有显示更改,但火确实被损坏并破坏了一切。这种情况会持续一段时间,然后自行修复。
对于 assetManager,我的 Yii 配置是这样的:
$config['components']['assetManager']['forceCopy'] = true;
$config['components']['assetManager']['appendTimestamp'] = true;
$config['components']['assetManager']['linkAssets'] = true;
正如您在下面看到的,JS 文件在鼠标悬停在其中一个字段上的颜色发生微小变化后就结束了。
当像所有其他资源一样包含它时,时间戳似乎没有附加到 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>
通过在 View 文件中调用 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]
);
处理起来太令人沮丧了。谁能阐明这里的问题是什么?
最佳答案
我在将 Vagrant 与 nginx 结合使用时遇到了这个问题。
解决方案是从 nginx 配置中关闭 sendfile 指令。
sendfile off;
关于javascript - 在 Yii 上缓存静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29414917/