将字体添加到资产管道导轨4.2.x

Gan*_*row 3 css fonts ruby-on-rails heroku

我正在尝试在heroku上部署我的应用程序,但仍然没有加载字体,这是我的相关字体sass:

@font-face
  font-family: 'FontAwesome'
  src: url('fontawesome-webfont.eot?v=4.4.0')
  src: url('fontawesome-webfont.eot?#iefix&v=4.4.0') format("embedded-opentype"), url('fontawesome-webfont.woff2?v=4.4.0') format("woff2"), url('fontawesome-webfont.woff?v=4.4.0') format("woff"), url('fontawesome-webfont.ttf?v=4.4.0') format("truetype"), url('fontawesome-webfont.svg?v=4.4.0#fontawesomeregular') format("svg")
  font-weight: normal
  font-style: normal
Run Code Online (Sandbox Code Playgroud)

我在这里提到了上面提到的这些字体app/assets/fonts.然后我有资产初始化程序:

Rails.application.config.assets.paths << Rails.root.join('app', 'assets', 'fonts')
Rails.application.config.assets.precompile << /\.(?:svg|eot|woff|ttf)\z/
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能解决这个问题,这似乎是一个常见的问题,但是没有一个共同的解决方案可行,有什么建议吗?

Ing*_*ers 5

而不是url你应该asset-url在sass中使用.

有关更多信息,请参见此处:https://github.com/rails/sass-rails#user-content-asset-helpers

所以这应该工作:

@font-face {
  font-family: 'FontAwesome'
  src: asset-url('fontawesome-webfont.eot?v=4.4.0')
  src: asset-url('fontawesome-webfont.eot?#iefix&v=4.4.0') format("embedded-opentype"), asset-url('fontawesome-webfont.woff2?v=4.4.0') format("woff2"), asset-url('fontawesome-webfont.woff?v=4.4.0') format("woff"), asset-url('fontawesome-webfont.ttf?v=4.4.0') format("truetype"), asset-url('fontawesome-webfont.svg?v=4.4.0#fontawesomeregular') format("svg")
  font-weight: normal
  font-style: normal
}
Run Code Online (Sandbox Code Playgroud)