web-dev-qa-db-ja.com

ASP.NET CoreでMIMEタイプを追加する方法

.NET Framework 4.6(MVC4/5)を使用してアプリケーションを開発するとき、次のようにweb.configファイルにカスタムMIMEタイプを追加していました(これは、アプリに追加する必要がある実際のMIMEタイプです)。

<system.webServer>
  <staticContent>
    <mimeMap fileExtension=".wasm" mimeType="application/wasm"/>
    <mimeMap fileExtension="xap" mimeType="application/x-silverlight-app"/>
    <mimeMap fileExtension="xaml" mimeType="application/xaml+xml"/>
    <mimeMap fileExtension="xbap" mimeType="application/x-ms-xbap"/>
  </staticContent>

.NET Coreでこの動作をどのように複製できますか?同じようにすることは可能ですか?

9
Rambo3

この構成はWebサーバー用であり、ASP.NET用ではありません。 system.webServerセクションのweb.configは、IISの構成を扱います。

ASP.NET CoreアプリケーションがIISおよびIISが静的コンテンツを処理している場合、背後で実行されている場合、同じものを引き続き使用する必要があります。

Nginxを使用している場合、設定にMIMEタイプを追加するか、mime.typesファイル。別のWebサーバーを使用している場合は、Webサーバーのドキュメントを参照してください。

ASP.NET Coreが静的コンテンツ自体を処理し、Edgeで実行されている場合、またはASP.NET CoreがMIMEタイプを認識する必要がある場合、ASP.NET Coreのハンドラーがそれを認識するように構成する必要があります。これは ドキュメントで で説明されています。

ドキュメントの例:

public void Configure(IApplicationBuilder app)
{
    var provider = new FileExtensionContentTypeProvider();
    // Add new mappings
    provider.Mappings[".myapp"] = "application/x-msdownload";

    app.UseStaticFiles(new StaticFileOptions
    {
        FileProvider = new PhysicalFileProvider(
            Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "images")),
        RequestPath = "/StaticContentDir",
        ContentTypeProvider = provider
    });
15
vcsjones