Office加载项缓存我的HTML文件

时间:2015-12-09 00:18:03

标签: angularjs caching ms-word office365 office-addins

上帝知道是什么原因,我本地word客户端上的Office加载项正在缓存我动态加载的html文件(通过angular)并拒绝给我一种方法将其从缓存中删除。我唯一的解决方案是重命名文件并强制它寻找新文件。

我知道这是一个缓存问题,而不是代码问题,因为当我在Web客户端中加载应用程序时,它总是获得新版本而不是旧版本。

请帮助,每次更改文件时重命名文件都是愚蠢而耗时的

4 个答案:

答案 0 :(得分:1)

我有同样的,不是用Angular而是JS添加办公室添加内容,切断我的网络服务器,仍然能够加载HTML! 对我来说,有效的是" Clear"信托中心下的按钮 - >受信任的加载项目录。 也许这就是HTML5 - 与你有关的东西,在你的HTML中是这样的,还是自动发生的等价物?

`<html.... manifest="/manifest.appcache">

有很多关于如何防止这种情况的建议我还没有尝试过,但这似乎包含了合理的例子来测试 - 如果以不寻常的方式传授! http://alistapart.com/article/application-cache-is-a-douchebag

现在正在为我服务的第二个选项!

在Internet Explorer中,转到Internet选项 - &gt;常规标签 - &gt;设置 - &gt;临时互联网文件 - &gt;勾选&#34;每次我访问网页&#34;。当然,这仅适用于本地托管的侧载应用程序。

奇怪的是,IE似乎是Office 2016中加载的对象,而不是Edge,虽然我的侧载空间中出现了Edge消息,但下次我看到它时会试着抓住它它(出现错误时出现了!)。

有一些技巧可能会像这样:

What does appending "?v=1" to CSS and Javascript URLs in link and script tags do?

或者像这样的CSS:

https://css-tricks.com/can-we-prevent-css-caching/

答案 1 :(得分:0)

一个简单的解决方法是在网址的末尾添加一些随机查询字符串,从而确保您的浏览器有一个缓存未命中。

例如,不是获取文件http://myaddin/myfile.html,而是添加足够大的随机查询字符串参数,以便您查询http://myaddin/myfile.html?cache=s98sj398nf03984jf3498n

Gabriel Royer - Office可扩展性团队开发人员,MSFT

答案 2 :(得分:0)

如今(Win 10 1903和最新的Office 2016)Office加载项使用 Edge 作为 WebViewHost 。 WebViewHost似乎将缓存的文件存储在这里:

dir /s %LOCALAPPDATA%\Packages\Microsoft.Win32WebViewHost_cw5n1h2txyewy\AC\#!123\INetCache\

在我们的情况下,我们使用 Azure App Service(IIS)作为Office加载项的后端。 并且我们添加了以下web.config设置,以允许客户端在每次访问时重新验证所有缓存的文件:

...
  <system.webServer>
    <staticContent>
      <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="0.00:00:00" cacheControlCustom="must-revalidate" />
    </staticContent>
...

当然, cacheControlMaxAge 可能会根据您的需要进行调整。

答案 3 :(得分:0)

Ctrl + Shift + F5 对我有帮助。