jyr*_*kim 0 heroku twitter-bootstrap ruby-on-rails-4
我在Heroku收到以下错误:
ActionController::RoutingError (No route matches [GET] "/fonts/glyphicons-halflings-regular.ttf)
Run Code Online (Sandbox Code Playgroud)
当服务器试图从供应商资产中找到Bootstrap的halflings图像时:
当我在本地使用Puma和Foreman运行应用程序时,它会正常工作,因为这些半身像会出现.
Heroku日志如下所示:
2015-02-24T06:15:45.302830+00:00 app[web.1]: source=rack-timeout id=983308e6-3d6f-494b-b8e1-f37b39b14d42 wait=11ms timeout=20000ms service=2ms state=completed
2015-02-24T06:15:45.302416+00:00 app[web.1]: vendor/bundle/ruby/2.0.0/gems/puma-2.11.1/lib/puma/server.rb:375:in `process_client'
2015-02-24T06:15:45.304253+00:00 heroku[router]: at=info method=GET path="/fonts/glyphicons-halflings-regular.woff" host=fathomless-sands-8666.herokuapp.comrequest_id=983308e6-3d6f-494b-b8e1-f37b39b14d42 fwd="212.149.201.185" dyno=web.1 connect=6ms service=6ms status=404 bytes=1531
2015-02-24T06:15:45.506425+00:00 heroku[router]: at=info method=GET path="/fonts/glyphicons-halflings-regular.ttf" host=fathomless-sands-8666.herokuapp.comrequest_id=41275bad-2ed7-4cfd-89c5-d223b6063d62 fwd="212.149.201.185" dyno=web.1 connect=28ms service=37ms status=404 bytes=1531
2015-02-24T06:15:45.476848+00:00 app[web.1]: Started GET "/fonts/glyphicons-halflings-regular.ttf" for 212.149.201.185 at 2015-02-24 06:15:45 +0000
2015-02-24T06:15:45.478340+00:00 app[web.1]:
2015-02-24T06:15:45.478344+00:00 app[web.1]: ActionController::RoutingError (No route matches [GET] "/fonts/glyphicons-halflings-regular.ttf"):
2015-02-24T06:15:45.478347+00:00 app[web.1]: vendor/bundle/ruby/2.0.0/gems/actionpack-4.0.2/lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
2015-02-24T06:15:45.471994+00:00 app[web.1]: source=rack-timeout id=41275bad-2ed7-4cfd-89c5-d223b6063d62 wait=33ms timeout=20000ms state=ready
2015-02-24T06:15:45.478349+00:00 app[web.1]: vendor/bundle/ruby/2.0.0/gems/actionpack-4.0.2/lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
2015-02-24T06:15:45.478351+00:00 app[web.1]: vendor/bundle/ruby/2.0.0/gems/railties-4.0.2/lib/rails/rack/logger.rb:38:in `call_app'
2015-02-24T06:15:45.478353+00:00 app[web.1]: vendor/bundle/ruby/2.0.0/gems/railties-4.0.2/lib/rails/rack/logger.rb:20:in `block in call'
2015-02-24T06:15:45.478355+00:00 app[web.1]: vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.2/lib/active_support/tagged_logging.rb:67:in `block in tagged'
Run Code Online (Sandbox Code Playgroud)
application.css文件
/*
* This is a manifest file that'll be compiled into application.css, which will include all the files
* listed below.
*
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
*
* You're free to add application-wide styles to this file and they'll appear at the top of the
* compiled file, but it's generally better to create a new file per style scope.
*= require bootstrap/dist/css/bootstrap
*= require_self
*= require_tree .
*/
Run Code Online (Sandbox Code Playgroud)
.bower.json文件:
{
"name": "bootstrap",
"description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
"version": "3.3.2",
"keywords": [
"css",
"js",
"less",
"mobile-first",
"responsive",
"front-end",
"framework",
"web"
],
"homepage": "http://getbootstrap.com",
"main": [
"less/bootstrap.less",
"dist/css/bootstrap.css",
"dist/js/bootstrap.js",
"dist/fonts/glyphicons-halflings-regular.eot",
"dist/fonts/glyphicons-halflings-regular.svg",
"dist/fonts/glyphicons-halflings-regular.ttf",
"dist/fonts/glyphicons-halflings-regular.woff"
],
"ignore": [
"/.*",
"_config.yml",
"CNAME",
"composer.json",
"CONTRIBUTING.md",
"docs",
"js/tests",
"test-infra"
],
"dependencies": {
"jquery": ">= 1.9.1"
},
"_release": "3.3.2",
"_resolution": {
"type": "version",
"tag": "v3.3.2",
"commit": "bcf7dd38b5ab180256e2e4fb5da0369551b3f082"
},
"_source": "git://github.com/twbs/bootstrap.git",
"_target": "~3.3.2",
"_originalSource": "bootstrap",
"_direct": true
}
Run Code Online (Sandbox Code Playgroud)
这些半身人可以在我的项目中的两个文件夹中找到: vendor/assets/bower_components/bootstrap/dist/fonts vendor/assets/bower_components/bootstrap/fonts
除了那些半身像,应用程序工作正常:

我之前删除了public/assets目录已提交并重新部署到Heroku,这解决了我的旧问题/sf/answers/2007736321/感谢史蒂夫.较旧版本中的错误消息(当导航栏未显示时)与此版本非常相似,因此此问题也可能与资产有关.
如果这个问题听起来很熟悉,那么请放弃一行.非常感谢 :-)
可以在GitHub上找到部署到Heroku的代码
你有几个问题在这里.
方案:
使用官方的bootstrap-sass bower包,它将使用正确的字体路径编译bootstrap.
安装bower-sass并删除vanilla bootstrap:
bower uninstall bootstrap --save
bower install bootstrap-sass --save
Run Code Online (Sandbox Code Playgroud)移动application.css到application.css.scss.在mainfest部分之后添加以下行.
$icon-font-path: "bootstrap-sass/assets/fonts/bootstrap/";
@import "bootstrap-sass/assets/stylesheets/bootstrap-sprockets";
@import "bootstrap-sass/assets/stylesheets/bootstrap";
Run Code Online (Sandbox Code Playgroud)
您还必须确保删除此行,因为删除了非sass版本的bootstrap.
*= require bootstrap/dist/css/bootstrap
Run Code Online (Sandbox Code Playgroud)将vendored assets路径添加到application.rb,以便rails可以编译并提供它们.
您还需要更新application.rb,以便Rails知道资产的位置.根据官方bootstrap-sass文档(https://github.com/twbs/bootstrap-sass#c-bower):
# Bower asset paths
root.join('vendor', 'assets', 'bower_components').to_s.tap do |bower_path|
config.sass.load_paths << bower_path
config.assets.paths << bower_path
end
# Precompile Bootstrap fonts
config.assets.precompile << %r(bootstrap-sass/assets/fonts/bootstrap/[\w-]+\.(?:eot|svg|ttf|woff2?)$)
# Minimum Sass number precision required by bootstrap-sass
::Sass::Script::Number.precision = [8, ::Sass::Script::Number.precision].max
Run Code Online (Sandbox Code Playgroud)这应该解决问题,你的glyphicons现在应该加载.
| 归档时间: |
|
| 查看次数: |
2560 次 |
| 最近记录: |