我将对我的JS文件进行更改,但它不会在浏览器中真正更改,我必须每次重命名文件以便重新加载它。是否有某种.htaccess命令我可以添加或者某些东西让它停止缓存?
它甚至缓存了我的html页面的核心。我需要重新打开我的整个浏览器才能看到更改。它可能是服务器问题吗?
答案 0 :(得分:183)
您可以点击右上角...
|的设置图标更多工具| 开发人员工具 | 网络 | 禁用缓存(当DevTools打开时)
对于Windows,这是 F12 或 CTRL + SHIFT + I ,而在mac CMD + SHIFT + I 打开DevTools。
Chrome更新于2018年9月的新途径:
点击右上角...
|的设置图标设置 | 偏好设置 | 开发人员工具 | 网络 | 禁用缓存(当DevTools打开时)
答案 1 :(得分:57)
更快捷的方法是右键点击地址栏旁边的刷新图标,然后选择清空缓存并重新加载
确保Chrome的开发工具已打开。 (按F12) 顺便说一句......这个技巧仅适用于Chrome for Windows,Ubuntu和Mac OS
答案 2 :(得分:16)
单击重新加载按钮时保持移位。
答案 3 :(得分:13)
使用PHP生成的随机数添加script.js?a=[random Number]
之类的内容。
你试过expire = 0,pragma“no-cache”和“cache-control = NO-CACHE”? (我不知道他们对Scripts的看法)。
答案 4 :(得分:11)
一些想法:
HEAD
命令而不是完整的GET,以查看是否需要再次下载完整文件,服务器会使用时间戳来查看。如果要在服务器上禁用缓存,可以执行以下操作:
Header set Expires "Thu, 19 Nov 1981 08:52:00 GM"
Header set Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
Header set Pragma "no-cache"
在.htaccess
答案 5 :(得分:6)
快速步骤:
1)转到Chrome菜单 - >打开开发人员工具信息中心工具 - >开发人员工具
2)点击右侧的设置图标(这是一个齿轮!)
3)选中“禁用缓存(当DevTools打开时)”框
4)现在,当仪表板启动时,只需点击刷新,JS就不会被缓存!
答案 6 :(得分:2)
在对我的Web应用程序进行更新时,我将使用处理程序返回单个JS文件以避免服务器上的大量命中,或者向它们添加一个小的查询字符串:
<script type="text/javascript" src="/mine/myscript?20111205"></script>
答案 7 :(得分:2)
问题是Chrome需要在Cache-Control`标头中包含must-revalidate
才能重新检查文件以查看是否需要重新获取文件。
您可以随时SHIFT-F5并强制Chrome刷新,但如果您想在服务器上解决此问题,请添加此响应标头:
Cache-Control: must-revalidate
这告诉Chrome检查服务器,看看是否有更新的文件。如果有更新的文件,它将在响应中收到。如果没有,它将收到304响应,并确保缓存中的那个是最新的。
如果您没有设置此标头,那么在没有任何其他设置使文件无效的情况下,Chrome将从不检查服务器以查看是否有更新的版本。
这是一个blog post,可以进一步讨论这个问题。
答案 8 :(得分:1)
<Files *>
Header set Cache-Control: "no-cache, private, pre-check=0, post-check=0, max-age=0"
Header set Expires: 0
Header set Pragma: no-cache
</Files>
答案 9 :(得分:1)
我知道这是一个“老”的问题。但是缓存带来的麻烦从未如此。经过大量的试验和错误,我发现我们的一个网络托管服务提供商通过CPanel这个应用程序称为Cachewall。我刚刚点击了启用开发模式并且......瞧!它立即停止了长期遭受的痛苦:) 希望这有助于其他人...... [R
答案 10 :(得分:0)
当我浏览网站(在托管公司服务器上使用真实域名)时,我获得了相同的css文件,而我无法获得Chrome上的更新版本。当我在Firefox上浏览时,我能够获得该文件的更新版本。这些答案都不适合我。我的机器上也有网站文件,使用本地apache服务器通过localhost浏览网站。我关闭了我的apache服务器,我能够获得更新的文件。不知怎的,我的本地apache服务器搞乱了chrome缓存。希望这有助于某人,因为我很难解决这个问题。
答案 11 :(得分:0)
您可以改为打开隐身窗口。在普通镀铬窗口中禁用缓存时切换到隐身窗口对我来说仍然没有重新加载自上次缓存以来我已更改的JavaScript文件。
https://www.quora.com/Does-incognito-mode-on-Chrome-use-the-cache-that-was-previously-stored
答案 12 :(得分:0)
不适用于我的东西
我不工作的意思是: 在文件系统中,.js文件已更新,但Chrome不会接受更改。这意味着页面脚本将按照旧的逻辑执行,Dev工具的Scripts / ... / Compiled / ...显示了旧的.js内容。
什么对我有用:
Chrome版本86.0.4240.193(官方内部版本)(64位)