【发布时间】:2019-02-16 12:45:16
【问题描述】:
我最近将我的 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)
有没有办法从捆绑包中删除版本号?由于这个问题,我收到 404 错误。如果我在没有查询参数的情况下向路径发出请求,它就可以正常工作。
我查看了ng-cli 6 and font awesome icons not working,这看起来是一个类似的问题,但作者最终修改了一些字体很棒的 css 来修复它(不理想)。
可能相关或不相关的其他信息:
- “@angular/common”:“6.0.7”
- "font-awesome": "4.7.0"
- “@angular/cli”:“^6.0.8”
我将 Adobe AEM 用于 CMS,并且我的 Angular 应用程序在 Apache 2.4 上运行。由于字体是 Angular 应用程序的一部分并存储在 Web 服务器上,Apache 上的调度程序正在接受任何带有查询参数的请求并将它们转发到失败(404 未找到)的 CMS。我可以在调度程序配置中添加一条规则,但我希望应用程序能够像使用 ng4 一样构建。
【问题讨论】:
-
我记不清了,但我认为在为生产构建时会删除版本查询。试试
ng build --prod -
我使用
@fortawesome/angular-fontawesome并通过 WebPack 导入字体。这会将 SVG 捆绑到 JS 包中(我也在使用 FontAwesome 5)。我知道这不能解决您的问题,但我发现这要好得多。 -
您找到解决方案了吗?我也面临同样的问题。
-
我还没有合适的解决方案。我目前的解决方法是 dispatcher.any 中的一个配置,它可以防止带有 font awesome 查询参数的 url 被转发到 AEM。
标签: angular webpack angular-cli