3

我正在尝试部署一个在开发中运行良好的应用程序,但是当我使用 $git push heroku master 将其推送到 heroku 时,rake assets:precompile 失败,因为“找不到文件 twitter/bootstrap”。(由 application.js 引发的错误)

我已经用谷歌搜索了这个问题并找到了各种各样的答案,但这些都不适合我: Heroku deploy 在通过 twitter-bootstrap-rails gem 升级到 bootstrap 2.0.1 后失败

在生产中找不到文件“twitter/bootstrap”

Rails3 找不到文件“引导程序”

-我尝试添加 config.assets.precompile = false

谁能帮我找出问题所在?我真的无法理解。谢谢你。

这是宝石文件

gem 'rails', '3.2.6'

group :development do
gem 'sqlite3'
gem 'annotate', '~> 2.4.1.beta'
end

group :production do
  gem 'pg'
end

group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'twitter-bootstrap-rails', :git => "git://github.com/seyhunak/twitter-bootstrap-rails.git", :branch => "static"
  gem 'bootstrap-sass', '~> 2.0.3'
  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'
gem 'bcrypt-ruby', '3.0.1'

应用程序.css:

 *= require_self
 *= require_tree .

这是application.js

//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require bootstrap
//= require_tree .
4

4 回答 4

2

我通过使用以下步骤解决了这个问题:

  1. 从 gemfile 中的 :assets 外部移动twitter-bootstrap-rails gem。
  2. 更新twitter-bootstrap-rails gem 版本2.2.6或直接粘贴到您的 gemfile 中。 gem 'twitter-bootstrap-rails', :git => 'git://github.com/seyhunak/twitter-bootstrap-rails.git'

(或者)

如果 twitter-bootstrap-rails 2.2.6 不起作用,则使用twitter-bootstrap-rails gem 最新版本

于 2013-04-24T07:23:58.353 回答
1

为什么要包含 2 次引导程序?

//= require twitter/bootstrap
//= require bootstrap

U 应该仅以第二种方式 ( //= require bootstrap) 包含它,它应该可以正常工作。

编辑:我只是在使用,gem 'bootstrap-sass', '~> 2.0.2'因此我只需要//= require bootstrap..如果您还使用其他 gem,您只需要第一行,我可以想象的问题仍然存在。您是否尝试过不使用静态分支?

于 2012-07-02T10:10:32.667 回答
0

阅读:https ://github.com/seyhunak/twitter-bootstrap-rails/issues/123

尝试:

  1. 从 app/assets/javascript 和 app/assets/stylesheets 中删除引导文件
  2. 导轨 g 引导程序:安装
  3. 推送到heroku

另外,尝试将 gem 移出资产组

编辑:nvm,没有看到你的答案,你应该批准它;)

于 2012-07-03T20:42:39.110 回答
0

在我的情况下,删除 application.css.scss 解决了这个问题(当我试图部署到 heroku 时,我不再遇到错误)但是当我尝试访问我的应用程序时 heroku 说“我们很抱歉,但是发生了一些事情错误的”

最后运行 heroku rake db:migrate 对我来说很好,现在一切正常

于 2012-07-02T11:40:53.220 回答