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

时间:2015-01-31 21:52:00

标签: iis-express asp.net-core

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

使用IIS Express在vNext中无法使用这两个选项。

我查看了project.json文件的schema,但在那里找不到任何有用的东西。

这可以吗? - 我想为.woff2扩展名添加一个mime类型。

2 个答案:

答案 0 :(得分:4)

如果您在IIS 7或更高版本上托管它,则后续步骤将执行您所需的操作。这个答案我使用的是Visual Studio 2015 CTP5。

  1. 发布您的网络应用程序(ASP.net vnext)
  2. 您可以将其发布到C:\ MyPublish
  3. 等位置
  4. 成功发布后,您会找到以下位置C:\ MyPublish \ wwwroot。您可以在这里找到web.config。
  5. 现在将您的站点托管到IIS中(确保您已使用C:\ MyPublish \ wwwroot作为路径)
  6. 现在在这里编辑web.config就像你为旧版本添加mime类型一样。 (以下是我的编辑)
  7.   <?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文件并且我们编辑但是现在我们必须遵循不同的过程来注册,因为将来我们可以在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);
                }
    

答案 1 :(得分:1)

this发布之前,您还可以修改我在applicationhost.config中找到的D:\Documents\IISExpress\config(您的可能在您的C驱动器上[文档])。

我补充说:

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

<staticContent>内。