我最近将我的 Web 应用程序从 ng4 升级到了 ng6。新的 angular-cli 构建包的方式似乎与 ng4 不同。
我已验证字体文件包含在 dist 目录中,并且已正确创建哈希。
fontawesome-webfont.674f50d287a8c48dc19b.eot
fontawesome-webfont.af7ae505a9eed503f8b8.woff2
fontawesome-webfont.fee66e712a8a08eef580.woff
fontawesome-webfont.912ec66d7572ff821749.svg
fontawesome-webfont.b06871f281fee6b241d6.ttf
查看相应的样式包,styles.863b3e5b89b185b8f9c6.css
我可以看到该路径包含一个版本号。
* Font Awesome 4.7.0 by @davegandy - http://fontawesome.io @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/@font-face{font-family:FontAwesome;src:url(fontawesome-
webfont.674f50d287a8c48dc19b.eot?v=4.7.0);src:url(fontawesome-
webfont.674f50d287a8c48dc19b.eot?#iefix&v=4.7.0) format("embedded-
opentype"),url(fontawesome-webfont.af7ae505a9eed503f8b8.woff2?v=4.7.0)
format("woff2"),url(fontawesome-webfont.fee66e712a8a08eef580.woff?
v=4.7.0) format("woff"),url(fontawesome-
webfont.b06871f281fee6b241d6.ttf?v=4.7.0)
format("truetype"),url(fontawesome-webfont.912ec66d7572ff821749.svg?
v=4.7.0#fontawesomeregular)
有什么方法可以从 bundle 中删除版本号吗?由于这个问题,我收到 404 错误。如果我在没有查询参数的情况下向路径发出请求,它就可以正常工作。
我看了ng-cli 6 and font awesome icons not working这看起来是一个类似的问题,但作者最终修改了一些 font-awesome css 来修复它(不理想)。
可能相关也可能不相关的附加信息:
- "@angular/common": "6.0.7"
- "font-awesome": "4.7.0"
- "@angular/cli": "^6.0.8"
我将 Adobe AEM 用于 CMS,我的 Angular 应用程序在 Apache 2.4 上运行。 Apache 上的调度程序正在接受任何带有查询参数的请求并将它们转发到失败的 CMS(404 未找到),因为字体是 Angular 应用程序的一部分并存储在 Web 服务器上。我可以向调度程序配置添加一条规则,但我希望应用程序能够像使用 ng4 那样构建。
最佳答案
我最好的解决方案是在 dispatcher.any 中添加一条新规则,以忽略请求字体 awesome Assets 的 URL 参数。
/ignoreUrlParams
{
{ /glob "v" /type "allow" }
}
关于angular - Font awesome - 从样式包 NG6 中删除版本号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52285629/