我在开发中使用本地主机,并直接从CDN包含jquery。
似乎按下“Ctrl + R”会强制页面重新加载,包括重新下载来自CDN的jquery。
我想问一下,是否有可能在刷新时保留来自CDN的jquery缓存,但清除我的本地主机缓存?
注意:我知道我可以做的一件事是将jquery文件托管在本地;我只是想看看是否有绕过这个方法的方式。
我在开发中使用本地主机,并直接从CDN包含jquery。
似乎按下“Ctrl + R”会强制页面重新加载,包括重新下载来自CDN的jquery。
我想问一下,是否有可能在刷新时保留来自CDN的jquery缓存,但清除我的本地主机缓存?
注意:我知道我可以做的一件事是将jquery文件托管在本地;我只是想看看是否有绕过这个方法的方式。
你可以完全防止所有文件被缓存,但这是一个非此即彼的设置。你不能决定哪些文件从缓存中清除,哪些文件保留在缓存中。
在开发过程中,由于你正在使用Chrome,我建议启用“禁用缓存(同时打开DevTools)”设置:
如果像我一样,每次打开DevTools面板时缓存都会被禁用。
另一件事情是让你的服务器完全绕过缓存以获取所有资源。由于jQuery来自CDN,因此此无缓存设置不适用于它。要禁用资源缓存,您可以包括以下响应头:
Cache-Control:no-cache, no-store
按下Linux/Windows上的Ctrl+Shift+i,或Mac上的Option+Command+j来打开开发者工具,然后进入网络
选项卡,在那里点击禁用缓存
如果你在使用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>
我使用这个Chrome扩展程序。请注意,您需要首先进入扩展选项并添加要禁用缓存的网站URL。
扩展链接 - https://chrome.google.com/webstore/detail/no-cache/ogbfmfambmmhfdpfokohebghmcdbodbh
您可以按Ctrl + Shift + R进行硬刷新,这将重新加载而不使用缓存。
或者您可以在隐身模式下打开 Chrome 标签页 Ctrl + Shift + N