天知道是什么原因,我的本地 word 客户端上的 Office 加载项正在缓存一个我动态加载的 html 文件(通过角度),并拒绝给我一种从缓存中删除它的方法。我唯一的解决方案是重命名文件并强制它查找新文件。
我知道这是一个缓存问题而不是代码问题,因为当我在 web 客户端中加载应用程序时,它总是得到新版本而不是旧版本。
请帮助,每次更改文件时重命名文件既愚蠢又耗时
我也有同样的情况,不是用 Angular,而是用 JS 添加办公室插件,切断我的网络服务器,仍然能够加载 HTML!对我来说,信任中心 -> 受信任的加载项目录下的“清除”按钮有效。也许这是 HTML5 - 与您的清单有关,在您的 HTML 中类似这样的东西,或者等效的自动发生?
`<html.... manifest="/manifest.appcache">
有很多关于如何防止这种情况的建议我还没有尝试过,但这看起来它包含合理的测试示例 - 如果以不寻常的方式传授! http://alistapart.com/article/application-cache-is-a-douchebag
第二个选项现在对我来说是一种享受!
在 Internet Explorer 中,转到 Internet 选项 -> 常规选项卡 -> 设置 -> 临时 Internet 文件 -> 勾选“每次访问该网页”。自然,这只适用于本地托管的侧载应用程序。
奇怪的是,IE 似乎是 Office 2016 中加载的对象,而不是 Edge,虽然我的侧载空间中出现了一条 Edge 消息,但我下次看到它时会尝试抓拍它(它是在它出现了一个错误!)。
有一些技巧可能会像这样工作:
将“?v=1”附加到链接和脚本标签中的 CSS 和 Javascript URL 有什么作用?
或者在这样的 CSS 中:
今天(Win 10 1903 和最新的 Office 2016)Office 插件正在使用Edge作为 WebViewHost。WebViewHost 似乎将缓存的文件存储在这里:
dir /s %LOCALAPPDATA%\Packages\Microsoft.Win32WebViewHost_cw5n1h2txyewy\AC\#!123\INetCache\
在我们的例子中,我们使用Azure 应用服务 (IIS)作为 Office 插件的后端。我们添加了以下 web.config 设置,让客户端在每次访问时重新验证所有缓存文件:
...
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="0.00:00:00" cacheControlCustom="must-revalidate" />
</staticContent>
...
当然,cacheControlMaxAge可以根据您的需要进行调整。
打Ctrl++对我Shift有F5帮助。
一个简单的解决方法是在 url 末尾附加一些随机查询字符串,从而确保您的浏览器有缓存未命中。
例如,不是获取文件,而是http://myaddin/myfile.html
附加一个足够大的随机查询字符串参数,以便您查询http://myaddin/myfile.html?cache=s98sj398nf03984jf3498n
.