TypeScript 的 MIME 类型是什么?

31

我希望我的IIS能够正确显示.ts文件,是否有TypeScript的MIME类型?text/javascript或类似类型也可以,但是有没有相关的规范呢?

我已经查看了语言规范,但是没有找到任何线索。

5个回答

30

想知道您为什么要提供TypeScript文件是个好主意。

据我所知,TypeScript用于编译成JavaScript,然后在浏览器中执行。目前,没有原生支持TypeScript的浏览器(如果我错了,请纠正我)。

如果您仍想通过IIS提供.ts文件,您仍可以在IIS管理中添加与.ts相关联的自定义MIME类型。标准定义了前缀x.vnd.prs.,而vnd.前缀也列在了标准化的MIME类型text/application/中。

因此,根据您的使用情况,您可以选择text/x.typescripttext/prs.typescript


59
提供 TypeScript 文件的一个非常好的原因是在使用源映射功能时,浏览器(比如 Chrome)需要下载构成实际执行的 .js 文件的各个原始 .ts 文件。 - Ken Smith
3
针对一个使用 .d.ts 文件进行语法检查/自动补全的 Web TypeScript 编辑器。 - Guillaume86
1
注意:x.已被弃用,现在应使用prs.(“我需要一个适合自己的MIME类型”)和vnd.(“我需要一个适合在我的组织树下发布的MIME类型”)进行区分。 - nonchip
@devio 实际上,你可能还有另一个原因想要提供 TypeScript 文件。目前,我正在开发一个 TypeScript 项目,其中页面在运行时使用“transpiler.js”和微软的“transcriptionService.js”转换为 JS。这使我能够使用 Coda IDE 应用程序在 iPhone 上开发 TypeScript 应用程序。 - Charles Robertson

22

把这个放进你的 web.config 文件里;

<configuration>
    ...
    <system.webServer>
        <staticContent>
            <mimeMap fileExtension=".ts" mimeType="application/x-typescript" />
        </staticContent>
    </system.webServer>
</configuration>

4

Deno 使用 application/typescript 来提供 TypeScript 文件的服务,从而让你可以使用以下方式运行它们:

deno run "https://example.com/file.ts"

那么 .tsx 文件呢? - softmarshmallow
@softmarshmallow 与 .ts 文件相同,都是 application/typescript - Avestura

0

您可能还需要注释掉TypeScriptAssetHandler,该处理程序将.ts文件转换为javascript。

 <handlers>
    <!--<add name="TypeScriptAssetHandler" path="*.ts" verb="GET" type="BundleTransformer.TypeScript.HttpHandlers.TypeScriptAssetHandler, BundleTransformer.TypeScript" resourceType="File" preCondition="" />-->
  </handlers>

如果您定义了这个处理程序,可能会出现像这样的错误。
[HttpException (0x80004005): During the output text content of processed asset an unknown error has occurred.
See more details:
Exception has been thrown by the target of an invocation.]

0

使用Apache 2,我只需将MIME类型设置为text/plain即可。这解决了我的问题,因为我得到的奇怪结果是MIME类型报告为某种视频格式。

您可以通过在Apache 2配置中使用以下内容来实现此目标:

<filesMatch "\.(html|htm|js|css|ts|ts!transpiled)$">
  FileETag None
  <ifModule mod_headers.c>
    Header unset ETag
    Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
    Header set Pragma "no-cache"
    Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
  </ifModule>
</filesMatch>
AddType text/plain ts

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接