如何在Mac上清除Excel 2016任务窗格加载项的客户端浏览器缓存?

sha*_*aun 1 macos excel office-addins browser-cache office-js

这是前一个问题的后续问题,其中"我如何确保在任务窗格加载项中看到最新的JS代码"的答案涉及通过服务器添加的元/无缓存标记控制客户端缓存行为(或版本化服务器资源).

但是,我正在寻找一种在客户端上的手动方式,以便最终用户清除似乎存储JavaScript文件的客户端缓存,并防止服务器上的更新JS文件被任务窗口添加使用-在.在开发过程中,我将经常在服务器上更新JS资源,我正在寻找允许使用这些更新文件的客户端解决方案.

环境:在Mac上运行的Excel 2016桌面版(OSX 10.11.5)使用Excel/Office.js v1.2的任务窗格加载项.

场景:将加载项工件部署到Web服务器,在Mac上运行加载项.然后在加载项中更新foo.js中的代码,重新部署到Web服务器.运行加载项并查看foo.js中的旧(更新前)行为.

我尝试过的:

  1. 在同一台Mac上,直接从Safari中的Web应用程序加载foo.js.我可以看到js代码中我希望在更新版本中的更改.

  2. 清除Safari缓存(隐私>删除所有网站数据)(我怀疑这不会基于#1 - Safari似乎与Excel共享缓存但值得一试) - 没有改变任何东西.

  3. 在〜/ Library/Containers/com.microsoft.Excel下试图找到一个缓存 - 删除〜/ Library/Containers/com.microsoft.Excel/Data/Library/Caches/com.microsoft.Excel - 没有帮助.

  4. 使用任务窗格上下文菜单中的重新加载菜单项(看起来像Mac上的[i]) - 没有区别:仍然看到旧的foo.js.

存储了Excel(桌面)2016任务窗格加载项引用的JavaScript文件在哪里?(在Mac上)以及最终用户如何删除它们?

sha*_*aun 6

我偶然发现com.Microsoft.OsfWebHost,同时使用Mac上终端的"默认"命令.一些谷歌搜索出现了这篇文章,基本上提供了答案.稍微改进了那里的指示,这就是我所做的:

  1. 确保我退出了Excel
  2. 在Finder中,导航到〜/ Library/Containers/com.Microsoft.OsfWebHost/Data/Library/Caches
  3. 在那里重命名(或删除)名为"com.Microsoft.OsfWebHost"的文件夹
  4. 在Excel中打开我的工作簿(它已经插入了加载项)
  5. 似乎没有任何东西加载,所以我使用了任务窗格中上下文菜单中的重新加载命令

现在我可以看到已经加载了我的更新版本的java脚本文件.

这仅基于经验证据,没有来自Microsoft或Apple doc的佐证,因此您的里程可能会有所不同.

顺便说一下,com.Microsoft.OsfWebHost有一些有趣的"默认"属性:

defaults read com.Microsoft.OsfWebHost
{
WebKitCacheModelPreferenceKey = 1;
WebKitDebugFullPageZoomPreferenceKey = 1;
WebKitPluginsEnabled = 0;
WebKitUsesPageCachePreferenceKey = 0;
}
Run Code Online (Sandbox Code Playgroud)

谷歌搜索WebKitCacheModelPreferenceKey没有发现任何官方文档,但似乎有建议将其设置为0可能会抑制缓存.