在Azure Git部署中包含TypeScript文件

11 浏览
0 Comments

在Azure Git部署中包含TypeScript文件

我正在尝试将TypeScript文件包含在我的自动git部署中,这样我就可以展示我正在构建的框架的代码。然而,每当我部署到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文件?

0
0 Comments

问题原因:默认情况下,IIS不能正确地提供TypeScript文件。

解决方法:需要添加自定义的MIME类型来处理TypeScript文件。首先,需要移除现有的.ts MIME类型(如果有的话),然后再添加MIME类型。如果在添加之前不移除现有的.ts MIME类型,会破坏现有的映射,并且无法提供任何CSS、JS文件等。

文章如下:

在使用msbuild管道部署时,发现使用该管道部署可以成功部署TypeScript文件,但是有一点需要注意,就是需要添加适当的MIME类型来处理TypeScript文件。

默认情况下,IIS无法正确地提供TypeScript文件。为了解决这个问题,我们需要添加自定义的MIME类型。

具体的解决方法如下:

首先,需要移除现有的.ts MIME类型(如果有的话),然后再添加MIME类型。

添加自定义MIME类型的代码如下:

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

需要注意的是,在添加MIME类型之前,一定要先移除现有的.ts MIME类型。如果在添加之前不移除现有的.ts MIME类型,会破坏现有的映射,并且无法提供任何CSS、JS文件等。

这个问题一直困扰着我,但是最终我终于解决了。希望这篇文章能帮助到其他人!

这个库真是太棒了:endgate-samples.azurewebsites.net,我给它点了个赞:github.com/NTaylorMullen/EndGate

哈哈,谢谢!这个库还在不断完善中,很快就会完成!

0