application/font-woff2 not working when using Asp.Net VNext

asp.net, asp.net-mvc-5, woff2

Solution

The file format `woff2` is in the mapping list but this was added recently (February 2015) so you may not use a release that contains this change. So to add a custom file format you can use the IIS way using `web.config`:

<system.webServer>
  <staticContent>
    <remove fileExtension=".woff2" />
    <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
  </staticContent>
</system.webServer>

Or using `StaticFilesOptions`:

public void Configure(IApplicationBuilder app)
{
    StaticFileOptions options = new StaticFileOptions();
    FileExtensionContentTypeProvider typeProvider = new FileExtensionContentTypeProvider();
    if (!typeProvider.Mappings.ContainsKey(".woff2"))
    {
        typeProvider.Mappings.Add(".woff2", "application/font-woff2");
    }
    options.ContentTypeProvider = typeProvider;
    app.UseStaticFiles(options);
}

Problem

I'm doing some experiments with VNext + OSX + Chrome. I'm trying to get a woff2 file ``` GET http://localhost:5003/fonts/fontawesome-webfont.woff2?v=4.3.0 ``` But an error occur. See the request's header below ``` Remote Address:127.0.0.1:5003 Request URL:http://localhost:5003/fonts/fontawesome-webfont.woff2?v=4.3.0 Request Method:GET Status Code:404 Not Found ``` This is my Startup.cs ``` public void Configure(IApplicationBuilder app) { app.UseStaticFiles(); app.UseServices(services => { services.AddMvc(); }); // Add MVC to the request pipeline app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller}/{action}/{id?}", defaults: new { controller = "Home", action = "Index" }); }); } ``` I saw inside AspNet project at Github about StaticFiles (Link bellow) and it seems to be supported. https://github.com/aspnet/StaticFiles/blob/dev/src/Microsoft.AspNet.StaticFiles/FileExtensionContentTypeProvider.cs Can you guys give me some help?

Original source

Related problems