如何将 font-awesome 4 与准系统 Rails 6 和 Webpacker 一起使用,无需任何额外的 gem,将字体或 css 文件复制粘贴到您的应用程序中并做其他奇怪的事情:
添加 font-awesome npm 包 —
包.json:
{
"dependencies": {
"font-awesome": "4.7.0"
}
}
在 css 清单中包含 font-awesome css 文件 —
应用程序/样式表/application.css:
/*
*= require font-awesome/css/font-awesome.min
*= require_tree .
*= require_self
*/
在我们的自定义 css 文件中覆盖字体定义 —
应用程序/样式表/font-awesome.css.erb:
@font-face {
font-family: 'FontAwesome';
src: url('<%= font_path('fontawesome-webfont.eot') %>');
src: url('<%= font_path('fontawesome-webfont.eot') %>?#iefix') format('embedded-opentype'), url('<%= font_path('fontawesome-webfont.woff2') %>') format('woff2'), url('<%= font_path('fontawesome-webfont.woff') %>') format('woff'), url('<%= font_path('fontawesome-webfont.ttf') %>') format('truetype'), url('<%= font_path('fontawesome-webfont.svg') %>#fontawesomeregular') format('svg');
font-weight: normal;
font-style: normal;
}
将 node_modules font-awesome dir + font 文件类型包含到资产管道中—
config/initializers/assets.rb
Rails.application.config.assets.paths << Rails.root.join('node_modules/font-awesome/fonts')
Rails.application.config.assets.precompile << /\.(?:svg|eot|woff|ttf)\z/
您将获得包含并编译到 public/fonts 目录中的字体,您将获得一个包含所有内容(您的应用程序和 font-awesome)编译到其中的单个 css 文件。
问题是,font-awesome 缩小的 css 包含硬编码的字体路径,为了覆盖它,我们只需添加带有生成字体路径的 font-face 指令。因此,在清单文件中应首先添加 font-awesome.min.css。
但是,虽然一切正常,但您会在控制台中收到 404 错误。我没能解决这个问题,最终放弃并切换到font-awesome-sass gem。