Office Addin命令taskpane按钮图标未显示

时间:2018-02-05 20:19:11

标签: office-js

我正在开发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

2 个答案:

答案 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部分调试:图标未显示