我正在开发Word Web加载项并面临功能区按钮图标问题;它没有出现。
我经常搜索并在这里看到几个问题,但是,我已经从那里传递了所有的建议,但它仍然无法正常工作。
我使用了加载项命令,我只有一个功能区按钮,其图标指向https
上的服务器。我可以通过任何浏览器抓取图像。
有几件奇怪的事情:
图标显示在Word Online和Word for Mac中,但不使用Word for Windows。
如果我在本地启动服务器,则可以正常运行。
imugr.com
,它也可以。PNG
格式这是我的清单:
<!-- from Group -->
<Control xsi:type="Button" id="TaskpaneButton">
<Label resid="TaskpaneButton.Label"/>
<Supertip>
<!-- ToolTip title. resid must point to a ShortString resource. -->
<Title resid="TaskpaneButton.Label"/>
<!-- ToolTip description. resid must point to a LongString resource. -->
<Description resid="TaskpaneButton.Tooltip"/>
</Supertip>
<Icon>
<bt:Image size="16" resid="tpicon_16x16"/>
<bt:Image size="32" resid="tpicon_32x32"/>
<bt:Image size="80" resid="tpicon_80x80"/>
</Icon>
<!-- This is what happens when the command is triggered (E.g. click on the Ribbon). Supported actions are ExecuteFunction or ShowTaskpane. -->
<Action xsi:type="ShowTaskpane">
<TaskpaneId>ButtonId1</TaskpaneId>
<!-- Provide a url resource id for the location that will be displayed on the task pane. -->
<SourceLocation resid="Taskpane.Url"/>
</Action>
</Control>
<!-- from Resources -->
<bt:Images>
<bt:Image id="tpicon_16x16" DefaultValue="https://validurl.com/wa/Images/R16X16.png"/>
<bt:Image id="tpicon_32x32" DefaultValue="https://validurl.com/wa/Images/R32X32.png"/>
<bt:Image id="tpicon_80x80" DefaultValue="https://validurl.com/wa/Images/R80X80.png"/>
</bt:Images>
获取图像时的HTTP跟踪:
HTTP/1.1 200 OK
Date: Mon, 05 Feb 2018 22:51:38 GMT
Server: Jetty(9.3.11.v20160721)
Last-Modified: Mon, 05 Feb 2018 16:24:36 GMT
Content-Type: image/png
Accept-Ranges: bytes
Content-Length: 835
Vary: User-Agent
Cache-Control: no-cache, no-store, must-revalidate, private
Pragma: no-cache
Expires: 0
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000; includeSubDomains
答案 0 :(得分:0)
这是由您的Cache-Control
标头引起的。出于性能原因,Word for Windows会缓存功能区图像。当您指定无法缓存这些图像时,Word将无法加载它们。
Cache-Control: no-cache, no-store, must-revalidate, private
您需要配置Web服务器,使图像没有添加Cache-Control
标头。
答案 1 :(得分:0)
感谢@Marc LaFleur - MSFT这个问题已经解决了。为了使其正常工作,我不会关闭Cache-Control
,而是将其设置为public, max-age=<value you want>
。对于Pragma
标题,它应该完全关闭。所以现在它起作用。
还有一个有用的链接Office-Add-in-Commands-FAQ部分调试:图标未显示