使用 ASP.NET vNext 时如何添加 mime 类型?

How do you add a mime type when using ASP.NET vNext?

有大量关于如何将 MIME 类型添加到普通项目的信息。 这些包括配置 IIS,或修改 web.config.

我在带有 IIS Express 的 vNext 中无法使用这两个选项。

我查看了 schema 到 project.json 文件,但在其中找不到任何有用的信息。

这还能做吗? - 我想为 .woff2 扩展名添加 mime 类型。

如果您将它托管在 IIS 7 或更高版本上,那么以下步骤将满足您的需要。这个答案我用过Visual Studio2015 CTP5.

  1. 发布您的网络应用程序(ASP.net vnext)
  2. 您可以将其发布到 C:\MyPublish 等位置
  3. 成功发布后,您将找到以下位置 C:\MyPublish\wwwroot。在这里你会发现 web.config.
  4. 现在将您的站点托管到 IIS 中(确保您已使用 C:\MyPublish\wwwroot 作为路径)
  5. 现在在这里编辑 web.config 就像您为旧版本所做的那样添加 mime 类型。 (以下是我的编辑)
  <?xml version="1.0" encoding="utf-8"?>
   <configuration>
  <appSettings>
    <add key="kpm-package-path" value="..\approot\packages" />
    <add key="bootstrapper-version" value="1.0.0-beta2" />
    <add key="kre-package-path" value="..\approot\packages" />
    <add key="kre-version" value="1.0.0-beta2" />
    <add key="kre-clr" value="CLR" />
    <add key="kre-app-base" value="..\approot\src\WebApplication5" />
  </appSettings>
    <system.webServer>
        <staticContent>
            <remove fileExtension=".woff" />
      <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
        </staticContent>
    </system.webServer>
</configuration>

注意:根据我的想法,在旧版本中,它始终是 windows 环境,所以我们在项目中有直接的 web.config 文件,我们编辑它,但现在我们必须遵循不同的处理注册,因为将来我们也可以在 linux env 上完全托管。

更新: 还有另一种方法可以做到这一点。如果您使用的是 Microsoft.AspNet.StaticFiles 软件包,那么您将拥有扩展名。

public void Configure(IApplicationBuilder app)
        {
            app.UseStaticFiles();
        }

这将间接使用https://github.com/aspnet/StaticFiles/blob/dev/src/Microsoft.AspNet.StaticFiles/FileExtensionContentTypeProvider.cs。在这里你可以看到所有的映射。

更新 2:(添加新的 MIME 类型)

 public void Configure(IApplicationBuilder app)
            {
                StaticFileOptions option = new StaticFileOptions();
                FileExtensionContentTypeProvider contentTypeProvider = (FileExtensionContentTypeProvider)option.ContentTypeProvider;
                contentTypeProvider.Mappings.Add("<<yourextention>>","<<mimetype>>");
                app.UseStaticFiles(option);
            }

this 发布之前,您还可以编辑我在 D:\Documents\IISExpress\config 中找到的 applicationhost.config(您的可能在您的 C 盘 [Documents] 上)。

我补充了:

<mimeMap fileExtension=".woff2" mimeType="font/x-woff2" />

里面 <staticContent>.