使用 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.
- 发布您的网络应用程序(ASP.net vnext)
- 您可以将其发布到 C:\MyPublish 等位置
- 成功发布后,您将找到以下位置 C:\MyPublish\wwwroot。在这里你会发现 web.config.
- 现在将您的站点托管到 IIS 中(确保您已使用 C:\MyPublish\wwwroot 作为路径)
- 现在在这里编辑 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>
.
有大量关于如何将 MIME 类型添加到普通项目的信息。 这些包括配置 IIS,或修改 web.config.
我在带有 IIS Express 的 vNext 中无法使用这两个选项。
我查看了 schema 到 project.json 文件,但在其中找不到任何有用的信息。
这还能做吗? - 我想为 .woff2 扩展名添加 mime 类型。
如果您将它托管在 IIS 7 或更高版本上,那么以下步骤将满足您的需要。这个答案我用过Visual Studio2015 CTP5.
- 发布您的网络应用程序(ASP.net vnext)
- 您可以将其发布到 C:\MyPublish 等位置
- 成功发布后,您将找到以下位置 C:\MyPublish\wwwroot。在这里你会发现 web.config.
- 现在将您的站点托管到 IIS 中(确保您已使用 C:\MyPublish\wwwroot 作为路径)
- 现在在这里编辑 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>
.