如何在ASP.NET Core中添加Mime类型

Ram*_*bo3 9 c# asp.net .net-core asp.net-core

在使用.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>
Run Code Online (Sandbox Code Playgroud)

如何在.NET Core中复制此行为?是否有可能以同样的方式做到这一点?

vcs*_*nes 15

此配置适用于Web服务器,而不适用于ASP.NET.system.webServerweb.config中的部分处理IIS的配置.

如果您的ASP.NET核心应用程序在IIS后面运行并且IIS正在处理静态内容,那么您应该继续使用相同的东西.

如果您使用的是nginx,则可以在配置中添加mime类型或编辑mime.types文件.如果您使用的是其他Web服务器,请参阅Web服务器的文档.

如果ASP.NET Core正在处理静态内容并且正在边缘运行,或者如果您需要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
    });
Run Code Online (Sandbox Code Playgroud)