静态内容托管

Azure DevOps Services

选择在你自己的服务、第三方托管服务(如 Azure 或 Heroku)或直接 Azure DevOps Services 上托管扩展的静态内容,如 HTML、CSS 和 JavaScript 文件。

重要

如果扩展插件需要在 TFS 数据库中创建自定义表,请不要使用 "dbo" 架构创建它。 相反,应在单独的架构中创建自定义表。 例如,"YourExtensionName"。

提示

使用Azure DevOps 扩展 SDK查看有关扩展开发的最新文档。

Azure DevOps Services 上的主机

在此模型中,静态内容与扩展的 .vsix 文件一起打包,并由中的公共终结点 https://publisher.gallerycdn.vsassets.io 提供。

当您从 Azure DevOps Services 中增强或修饰数据时,扩展的静态内容非常有用。 扩展发布不要求你 (扩展发布服务器) 为扩展设置、管理或支付托管服务

步骤

  1. 在扩展清单文件中,通过 files 属性指定要包含的文件:
    {
      "files": [
        {
            "path": "scripts", "addressable": true
        },
        {
            "path": "images/extra/icon1.png", "addressable": true
        }
      ]
    }
    
  2. 如果从扩展清单设置) , baseUri 则删除属性 (。
  3. 将扩展打包 (步骤)
  4. 发布 (或重新发布) 扩展 (步骤)
> [!重要说明] > 确保在对 .vsix 中包含的静态内容文件进行更改时递增扩展的版本。

请记住:

  • 特性指定 path 的值可以是文件夹或单独的文件。 如果文件夹,则会包括整个文件夹 (和任何子文件夹) 。
  • addressable属性很重要,它会告知 Visual Studio Codespaces,使文件 (s) URL 可寻址。
  • 所有 addressable 资产请求都区分大小写。 如果对资产的请求与实际上传的资产的大小写不同,则会导致 HTTP 404 (找不到) 错误。
  • 如果未指定 baseUri 或设置空值,则会告诉 Visual Studio Codespaces 在运行时计算基本 URI,就像 Azure DevOps Services 的静态内容。

在自己的服务 (或第三方服务) 上托管

在此模型中,从你自己的服务提供静态内容,而不会将其包含在你的扩展的 .vsix 文件中。

步骤

  1. 设置扩展清单中的 baseUri 属性例如,假设的值 https://myservice.net/extension 为,并且此中心具有以下内容:
    "baseUri": "https://myservice.net/extension",
    "contributions": [
        {
             "id": "Fabrikam.HelloWorld",
             "type": "ms.vss-web.hub",
             "targets": [
                 "ms.vss-work-web.work-hub-group"
             ],
             "properties": {
                 "name": "Hello",
                 "uri": "hello-world.html"
             }
         }
    ]

Azure DevOps Services 在此中心呈现 https://myservice.net/extension/hello-world.html 时加载此中心的内容。

后续步骤