ASP.NET Core 2 MVC - 字体真棒 woff/2 ttf 在生产中未加载



我正在构建一个个人项目,但字体很棒的网络字体无法加载时遇到了一些问题。 我已经做了一个gulp构建来集成Bootstrap 4,并将我所有的JS/SCSS/Fonts/Img从src目录构建到dist目录。我在 wwwroot 之外为 Dist 服务

将ASPNETCORE_ENVIRONMENT设置为"开发"时,一切正常,我的字体正确加载,但在"生产"中,它无法加载,我在控制台中收到以下消息:

Failed to load resource: the server responded with a status of 404 (Not Found)fa-regular-400.woff
Failed to load resource: the server responded with a status of 404 (Not Found)fa-regular-400.woff2
Failed to load resource: the server responded with a status of 404 (Not Found) fa-regular-400.ttf

当我将鼠标悬停在错误上时,我看到它们是从我的 SrcAssets 提供的,而不是像我所有其他资产文件那样的 DistAssets。

我没有找到任何关于 Core2.0 MVC 的工作资源,我发现的所有内容都是关于这些文件扩展名需要映射到的旧内容,例如应用程序/font-woff2

我尝试的最后一件事是在下面的配置方法中,但它仍然不起作用。

FileExtensionContentTypeProvider typeProvider = new FileExtensionContentTypeProvider();
if (!typeProvider.Mappings.ContainsKey(".woff2"))
{
    typeProvider.Mappings.Add(".woff2", "application/font-woff2");
}
if (!typeProvider.Mappings.ContainsKey(".woff"))
{
    typeProvider.Mappings.Add(".woff", "application/font-woff");
}
if (!typeProvider.Mappings.ContainsKey(".ttf"))
{
    typeProvider.Mappings.Add(".woff", "application/font-ttf");
}
app.UseStaticFiles(new StaticFileOptions
{
    ContentTypeProvider = typeProvider,
    FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "DistAssets")),
    RequestPath = "/assets"
});

感谢您的帮助。

我遇到了同样的问题,但我添加了"../lib/FontAwesome/webfonts"而不是"../webfonts" _variables.scss

$fa-font-path:                "../lib/FontAwesome/webfonts" !default;

也许它也会帮助你:)

尝试将此代码添加到您的 web.config

<configuration>
     ....
     <system.webServer>
         <staticContent>
             <mimeMap fileExtension="woff" mimeType="font/woff" />
         </staticContent>
     </system.webServer>
</configuration>

最新更新