IISで.tsファイルを正しく表示したいのですが、TypeScriptのMIMEタイプはありますか?text/javascriptなども機能する可能性がありますが、その仕様はありますか?
言語仕様 を調べましたが、手がかりが見つかりませんでした。
TypeScriptファイルを提供する理由whyを知っておくとよいでしょう。
私の知る限り、TypeScriptはJavascriptにコンパイルするために使用され、Javascriptはブラウザで実行されます。現在、TypeScriptのネイティブサポートはありません(間違っている場合は訂正してください)。
それでもIIS経由で.tsファイルを提供したい場合は、 カスタムmime-type in IIS Adminが.tsに関連付けられています。標準でプレフィックスが定義されています。 x.
、vnd.
およびprs.
、およびvnd。プレフィックスは、標準化されたmimeタイプ text / および application / にもリストされています。 。
したがって、使用法に応じて、text/x.TypeScript
またはtext/prs.TypeScript
を選択できます。
これをweb.configに貼り付けます。
<configuration>
...
<system.webServer>
<staticContent>
<mimeMap fileExtension=".ts" mimeType="application/x-TypeScript" />
</staticContent>
</system.webServer>
</configuration>
.tsファイルをjavascriptに変換するTypeScriptAssetHandler
をコメントアウトする必要がある場合もあります。
<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.]
Apache 2を使用して、MIMEタイプをtext/plainに設定するだけです。これにより、報告されたMIMEタイプがビデオ形式であるため、奇妙な結果が得られるという問題が解決しました。
これは、Apache2構成で次の方法で実現できます。
<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