正确打包CSS文件以作为Azure DevOps扩展的一部分部署到Azure CDN

时间:2018-12-27 20:25:25

标签: css azure-devops http-status-code-404 azure-devops-extensions

我正在开发一个Azure DevOps扩展,它将显示当前要打印的Sprint的工作项摘要。

我无法获取静态CSS文件以正确发布。

我在files部分的manifest.json中配置了以下内容:

    {
        "path": "css/print.css",
        "contentType": "text/css",
        "addressable": true
    },
    {
        "path": "css/screen.css",
        "contentType": "text/css",
        "addressable": true
    },

项目的结构为:

css/screen.css
css/print.css
board-cards.html
vss-extension.json

阅读此文档:https://docs.microsoft.com/en-us/azure/devops/extend/develop/static-content表示静态内容应该发布到:https://publisher.gallery.vsassets.io

调试时-网络日志中会出现以下两个404:

https://publisher.gallerycdn.vsassets.io/css/print.css https://publisher.gallerycdn.vsassets.io/css/screen.css

为了方便起见,我已将发布者帐户名称更改为通用的“发布者”字符串

我已经在7zip中打开了.vsix,文件夹和css文件在软件包中。经过数小时的Google搜索和遍历stackoverflow后,我找不到解决方案。

我尝试将“文件”中的条目更改为简单:

{
   "path": "css",
   "addressable": true
}

但是这没有效果。

有人能向我建议我缺少什么或做错什么吗?

1 个答案:

答案 0 :(得分:0)

通过进一步的调试,我发现文件确实存在于特定于所发布版本的URL下。

例如https://publisher.gallerycdn.vsassets.io/extensions/publisher/board-cards/1.0.64/1545996658773/css/screen.css

然后我检查了标记,意识到我已经对CSS文件进行了绝对引用。例如

/css/screen.css

通过删除第一个斜杠-使CSS文件成为相对引用,从而解决了问题。

HTML 101。