我在本地主机(Windows 7,Chrome)上测试了html / js代码,并且大约50%的时间代码更改未反映在浏览器中(我可以通过Dev Tools / Sources看到它)。互联网上有大量建议,但似乎都行不通:
<meta http-equiv="Cache-control" content="no-cache">
-无济于事。<script src="common.js"></script>
替换<script src="common.js?blabla"></script>
-在60%的情况下有帮助,但是在每次更改都是一件繁琐的事之后,您需要这样做。此外,它不适用于html更改。当我将代码提交到github.io时,出现了完全相同的问题
[请帮助我做到这一点,以便该站点立即反映出代码更改。
在特定情况下,使用Google Chrome浏览器,请尝试以下操作:打开开发工具->转到“网络”标签。刷新页面后,选中“禁用缓存”复选框。
注意:为使此功能每次在“开发工具”窗口中都必须始终保持开放状态。
但是,为了将更改传播给用户,而又无需他们硬刷新页面等,您必须在每个引用文件的末尾附加文件版本,以用于频繁更改的文件(正如您指出的那样)。例如:
<link rel="stylesheet" type="text/css" href="https://cdn.sstatic.net/Sites/stackoverflow/primary.css?v=20b379f72a37" >
附加到末尾的v=20b379f72a37
是文件内容的自动生成的文件哈希。
使用参数是正确的方法!在这里,您可以添加仅手动更改的版本号,并且可以将其设置为Date.time()进行调试,以便在
标记中强制覆盖所有缓存的版本,因为该参数始终是新参数一:< script type="text/javascript">
var script = document.createElement('script');
var version = Date.time();
script.src = "common.js?v="+version;
document.head.appendChild(script)
< /script>
希望这会有所帮助!