6

我正在尝试在我的自动 git deploy 中包含 TypeScript 文件,以便展示我正在构建的框架的代码。但是,每当我部署到 azurewebsites 时,部署都不包含 TypeScript 文件。

有问题的网站: http: //endgate-samples.azurewebsites.net/Samples/AnimatedSprites/

我试过的:

  1. 通过将 TypeScript 属性设置为“始终复制”,将所有 TypeScript 文件复制到输出文件夹。问题是我需要更改对所有文件的引用(不想这样做)。

  2. MSBuild 管道。这适用于文件系统部署,但不适用于 Web 部署... https://github.com/NTaylorMullen/EndGate/blob/master/EndGate/samples/EndGate.Core.JS.Samples/EndGate.Core.JS.Samples.csproj #L896-L909

  3. 手动发布到 FTP 端点(就像一个魅力),但不是自动的。还需要 msbuild 管道 (#2)

我做错了什么或者我能做什么(我没有尝试过)让我的 TypeScript 文件自动部署?

4

1 回答 1

5

因此,经过大量工作后,事实证明,使用 msbuild 管道(#2)它实际上会部署 typescript 文件。我缺少的一件事是添加适当的 mime 类型来处理打字稿文件。

事实证明,默认情况下 IIS 不会正确地提供 TypeScript 文件。

要添加我所做的自定义 mime 类型:

<system.webServer>
    <staticContent>
      <remove fileExtension=".ts"/>
      <mimeMap fileExtension=".ts" mimeType="text/plain" />
    </staticContent>
</system.webServer>

It's important that we remove the existing .ts mime type (if there is one) prior to adding the mime type. If you deploy onto a machine that has the .ts mime type already and you do not remove prior to adding, it will pretty much destroy your existing mappings and will fail to serve any css, js files etc.

This has been a battle but I finally got it working, hope this helps somebody else in the future!

于 2013-05-19T05:05:54.690 回答