来自https://webpack.github.io/docs/long-term-caching.html,
第一段说
为了有效地缓存您的文件,它们的 URL 中应该有一个哈希值或版本。
URL 中的哈希/版本使浏览器能够长期缓存文件的目的是什么?
我已尝试了所有可能的方法来防止用户注销后返回。但没有一个奏效。我试过 -
\n\nResponse.ClearHeaders();\n\nResponse.Cache.SetAllowResponseInBrowserHistory(false);\nResponse.Cache.SetCacheability(HttpCacheability.NoCache);\nResponse.Cache.SetNoStore();\nResponse.Cache.SetRevalidation(HttpCacheRevalidation.AllCach\xe2\x80\x8c\xe2\x80\x8bes);\n\nResponse.AppendHeader("Cache-Control", "no-cache"); \nResponse.AppendHeader("Cache-Control", "private"); \nResponse.AppendHeader("Cache-Control", "no-store"); \nResponse.AppendHeader("Cache-Control", "must-revalidate"); \nResponse.AppendHeader("Cache-Control", "max-stale=0"); \nResponse.AppendHeader("Cache-Control", "post-check=0"); \nResponse.AppendHeader("Cache-Control", "pre-check=0"); \nResponse.AppendHeader("Pragma", "no-cache"); \nResponse.AppendHeader("Expires", "Mon, 26 Jul 2000 05:00:00 GMT"); \n\nResponse.Cache.SetCacheability(HttpCacheability.NoCache); \nResponse.Cache.AppendCacheExtension("no-store, must-revalidate");\nResponse.AppendHeader("Pragma", "no-cache"); \nResponse.AppendHeader("Expires", "0"); \nRun Code Online (Sandbox Code Playgroud)\n\n我在 chrome (v.56) 上进行了测试。上面的代码不能阻止用户注销后返回。
\n\n任何想法??
\n我认为通过在服务工作线程的文件名中添加版本字符串来使用缓存清除是一个坏主意。任何教程中都从未提到过这一点,而且我也从未在野外见过这种方法。
您应该使用Service Worker 文件的响应标头中的no-cache指令和max-age字段。
但由于我没有找到关于此方法的专门声明,我尝试了一下,似乎如果您更改服务工作人员文件,就很难摆脱旧的文件。所以我可以在开发工具的源选项卡中看到这两个文件。
但是您不会立即在应用程序选项卡中看到新的服务工作人员,所以我不确定是什么阻碍了新的软件负责以及它实际上在等待什么。
有谁知道浏览器通常如何处理这种情况?
我的应用程序托管在 firebase 中,并使用云函数从第三方 API 获取数据。该云函数是 HTTP 触发的,并在客户端请求数据时运行。我想减少云函数调用(因为它目前在 Blaze 计划中),因此考虑在我的应用程序中添加缓存。
browser-cache firebase firebase-realtime-database google-cloud-functions
我有一个 NestJS REST api,并注意到 Cache-Control 标头未发送。我不确定我是否错过了 NestJS 的某些内容,但询问 google 如何使用 NestJS 缓存 REST API 获取响应只会引导我找到 NestJs 缓存管理器,该管理器位于内存缓存中的服务器上。所以我有几个问题:
感谢您的回答
我正在使用Magento 1.7,我最近将我的商店改为新的云计算主机.为了检查我的商店表现,我运行了几个pagespeed测试.每个结果都给了我相同的高优先级:启用浏览器缓存!
到目前为止,我已经在System - > Cache中激活了每个缓存.所以我不知道为什么我的商店不使用浏览器缓存.
通过切换到新的Hoster,我删除了存储在/var目录中的文件.在将Magento商店切换到服务器的简短教程中提到了这一点.
有谁知道如何解决这个问题?
谢谢!
我在下面 <head>
.css不会被缓存,每次刷新都会加载新的.css.但是由于我使用Backbone.js和Require.js,模块仍然被缓存.我还没有使用优化器.我将文件上传到Apache服务器并直接运行html/js.
我怎样才能消除这里的缓存?谢谢.
我刚刚选择了一个有大量javascript问题的项目,我已经能够解决所有这些问题,除了以下内容.加载此网站中的网页时,我会在Chrome控制台中不断收到以下错误消息.
"未捕获的ReferenceError:未定义check_url"

我搜索了整个解决方案的"check_url",并且字母组合在任何地方都不存在,即使在我所包含的第三方文件(jQuery,jQuery Mobile)中也是如此.
这可能与我使用应用程序缓存来缓存我的页面这一事实有关吗?
任何帮助将不胜感激.
谢谢!
这是前一个问题的后续问题,其中"我如何确保在任务窗格加载项中看到最新的JS代码"的答案涉及通过服务器添加的元/无缓存标记控制客户端缓存行为(或版本化服务器资源).
但是,我正在寻找一种在客户端上的手动方式,以便最终用户清除似乎存储JavaScript文件的客户端缓存,并防止服务器上的更新JS文件被任务窗口添加使用-在.在开发过程中,我将经常在服务器上更新JS资源,我正在寻找允许使用这些更新文件的客户端解决方案.
环境:在Mac上运行的Excel 2016桌面版(OSX 10.11.5)使用Excel/Office.js v1.2的任务窗格加载项.
场景:将加载项工件部署到Web服务器,在Mac上运行加载项.然后在加载项中更新foo.js中的代码,重新部署到Web服务器.运行加载项并查看foo.js中的旧(更新前)行为.
我尝试过的:
在同一台Mac上,直接从Safari中的Web应用程序加载foo.js.我可以看到js代码中我希望在更新版本中的更改.
清除Safari缓存(隐私>删除所有网站数据)(我怀疑这不会基于#1 - Safari似乎与Excel共享缓存但值得一试) - 没有改变任何东西.
在〜/ Library/Containers/com.microsoft.Excel下试图找到一个缓存 - 删除〜/ Library/Containers/com.microsoft.Excel/Data/Library/Caches/com.microsoft.Excel - 没有帮助.
使用任务窗格上下文菜单中的重新加载菜单项(看起来像Mac上的[i]) - 没有区别:仍然看到旧的foo.js.
存储了Excel(桌面)2016任务窗格加载项引用的JavaScript文件在哪里?(在Mac上)以及最终用户如何删除它们?
在我的一个场景中,我需要清除浏览器缓存.我尝试了下面的一个,但它不会工作.
browser.driver.manage().deleteAllCookies();
browser.executeScript('window.sessionStorage.clear();');
browser.executeScript('window.localStorage.clear();');
Run Code Online (Sandbox Code Playgroud)
谁可以帮我这个事?
browser-cache ×10
caching ×3
asp.net-mvc ×1
backbone.js ×1
css ×1
e-commerce ×1
excel ×1
firebase ×1
html ×1
javascript ×1
macos ×1
magento ×1
nestjs ×1
office-js ×1
protractor ×1
requirejs ×1
webpack ×1