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日当前,请参阅上面的链接以获取最新版本)
保持开发环境不变。我们只需要在生产模式下预编译资产。
在此,希望大家补充一下:
应用程序.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. 愿一切顺利。