rails app没有在heroku上找到fontawesome图标

Mat*_*man 6 css ruby-on-rails heroku twitter-bootstrap

我安装了一个bootstrap主题,一切都在本地运行良好.但是,当我去推送到heroku时,我的应用程序找不到字体.我预编译资产并推送到heroku,但没有图标.

所以,我在developer.rb中使用以下内容创建了像heroku这样的开发环境:

  config.assets.debug = true

  # Disable Rails's static asset server (Apache or nginx will already do this).
  config.serve_static_assets = true

  # Compress JavaScripts and CSS.
  config.assets.js_compressor = :uglifier
  # config.assets.css_compressor = :sass

  # Do not fallback to assets pipeline if a precompiled asset is missed.
  config.assets.compile = false

  # Generate digests for assets URLs.
  config.assets.digest = true
Run Code Online (Sandbox Code Playgroud)

现在,我的开发环境找不到字体文件.字体文件位于两个位置:

app/assets/fonts/fontawesome-webfont.*
public/assets/fontawesome-webfont.*
Run Code Online (Sandbox Code Playgroud)

但是,我收到此错误:

ActionController::RoutingError (No route matches [GET] "/assets/fontawesome-webfont.svg"):
Run Code Online (Sandbox Code Playgroud)

这是从预编译的css文件(application-xxxxxxxxx.css)加载它们的方式:

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

我究竟做错了什么?

Jay*_*Jay 12

对我来说最简单的解决方法是使用Font Awesome"get started"页面上描述的CDN .

删除样式表和字体文件的任何本地副本,并将其放在头部:

<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet">
Run Code Online (Sandbox Code Playgroud)

(截至2014年7月7日当前,请参阅上面的链接以获取最新版本)


Raj*_*tan 3

保持开发环境不变。我们只需要在生产模式下预编译资产。

在此,希望大家补充一下:

应用程序.rb

# Enable the asset pipeline
config.assets.enabled = true
config.assets.paths << "#{Rails.root}/app/assets/fonts" 
Run Code Online (Sandbox Code Playgroud)

并更新:

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

然后运行rake assets:precompile并将其推送到heroku. 愿一切顺利。