Chrome - 仅针对本地主机禁用缓存?

79

我在开发中使用本地主机,并直接从CDN包含jquery。

似乎按下“Ctrl + R”会强制页面重新加载,包括重新下载来自CDN的jquery。

我想问一下,是否有可能在刷新时保留来自CDN的jquery缓存,但清除我的本地主机缓存?

注意:我知道我可以做的一件事是将jquery文件托管在本地;我只是想看看是否有绕过这个方法的方式。


7
使用 Shift+F5 刷新页面,它会强制清除缓存。如果不起作用,请多按几次。 - Sercan Ozdemir
如何保留来自远程服务器的缓存? - songyy
3
我认为他想要让它保留在缓存中,而不是从缓存中清除。在网速很慢的情况下,等待CDN十分烦人,但是将正在使用的本地文件缓存也很麻烦,因此混合使用会很好。目前我已经暂时下载了CDN文件到本地。 - Rusty Rob
7个回答

72

你可以完全防止所有文件被缓存,但这是一个非此即彼的设置。你不能决定哪些文件从缓存中清除,哪些文件保留在缓存中。

在开发过程中,由于你正在使用Chrome,我建议启用“禁用缓存(同时打开DevTools)”设置:

Disable cache (while DevTools is open)

如果像我一样,每次打开DevTools面板时缓存都会被禁用。

另一件事情是让你的服务器完全绕过缓存以获取所有资源。由于jQuery来自CDN,因此此无缓存设置不适用于它。要禁用资源缓存,您可以包括以下响应头:

Cache-Control:no-cache, no-store

21
对于当前版本的Chrome "61",此功能已经移至开发者工具。 要激活它,您需要进入以下路径:更多工具 > 开发者工具 > 网络 "选项卡",然后单击“禁用缓存”。请注意,仅当开发者工具处于打开状态时,此功能才能正常工作。 - Oussama Bouthouri

49
在浏览器中,使用以下快捷键刷新页面:Ctrl+Shift+R 这将忽略缓存(而 Ctrl + R 将使用缓存)。
yw :)

谢谢。我浪费了半个小时尝试清除缓存(我不想清除我的历史记录)。 - Kaustubh Pandey

6

按下Linux/Windows上的Ctrl+Shift+i,或Mac上的Option+Command+j来打开开发者工具,然后进入网络选项卡,在那里点击禁用缓存


5

如果你在使用Apache,可以通过在htdocs目录(或你想禁用缓存的目录)中放置.htaccess文件来禁用服务器(本地主机)上的缓存,其内容如下:

FileETag None
<ifModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</ifModule>

4
仅适用于Mac: 您还可以按住刷新按钮,弹出一个带有三个选项的菜单:

Empty cache with Chrome


尝试在最新的Chrome/Edge上运行,但不起作用(Windows) - behzad
1
谢谢。我尝试过的其他方法都没有稳定地工作。 - cellen
你需要打开浏览器控制台才能看到这些选项。 - pixeline

1

-3

或者您可以在隐身模式下打开 Chrome 标签页 Ctrl + Shift + N


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接