1

从 font awesome 4.3 开始,他们将字体添加为 woff2 格式。

我在尝试通过 owin 提供此文件时遇到 404ed 错误:

app.UseFileServer(new FileServerOptions() {
    RequestPath = PathString.Empty,
    FileSystem = new PhysicalFileSystem(@"banana")
});

如何通过 owin 中的文件服务器提供 woff2 mime 类型文件?

4

2 回答 2

9

两种可能性:

  • 服务于所有类型的文件类型:
var options = new FileServerOptions() {
    RequestPath = PathString.Empty,
    FileSystem = new PhysicalFileSystem(@"banana")
};

options.StaticFileOptions.ServeUnknownFileTypes = true;

app.UseFileServer(options);
  • 添加 woff2 mime 类型:
var options = new FileServerOptions() {
    RequestPath = PathString.Empty,
    FileSystem = new PhysicalFileSystem(@"banana")
};

((FileExtensionContentTypeProvider)options.StaticFileOptions.ContentTypeProvider)
    .Mappings.Add(".woff2", "application/font-woff2");

app.UseFileServer(options);

第二个选项似乎不那么优雅,但仍然是最好的。阅读为什么 mime 类型很重要

于 2015-02-11T14:43:10.823 回答
2

您可以通过使用继承来避免不太好的转换:

FileServerOptions options = new FileServerOptions
{
    StaticFileOptions =
    {
        ContentTypeProvider = new CustomFileExtensionContentTypeProvider(),
    }
};

在哪里

private class CustomFileExtensionContentTypeProvider : FileExtensionContentTypeProvider
{
    public CustomFileExtensionContentTypeProvider()
    {
        Mappings.Add(".json", "application/json");
        Mappings.Add(".mustache", "text/template");
    }
}
于 2017-07-10T14:33:22.553 回答