4

在heroku上部署我有很大的问题。真的不知道为什么它不起作用。

这是我的宝石文件:

gem 'rails', '3.2.0'
gem 'pg'
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
end
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
gem 'jquery-rails'
gem "rspec-rails", ">= 2.8.1", :group => [:development, :test]
gem "factory_girl_rails", ">= 1.7.0", :group => :test
gem "email_spec", ">= 1.2.1", :group => :test
gem "cucumber-rails", ">= 1.3.0", :group => :test
gem "capybara", ">= 1.1.2", :group => :test
gem "database_cleaner", ">= 0.7.1", :group => :test
gem "launchy", ">= 2.0.5", :group => :test
gem "devise", ">= 2.0.4"
gem 'haml-rails', '>= 0.3.4', :group => :development
gem 'bootstrap-sass', '~> 2.0.2'

Heroku 日志:

 cache: [GET /] miss 
 /usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run'         
 vendor/bundle/ruby/1.9.1/gems/railties-3.2.0/lib/rails/rack/log_tailer.rb:14:in `call'
/usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service'
/usr/local/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'

简单的应用布局

%html
  %head
  %title iPinTeam
  %meta{:charset => "utf-8"}
  %meta{"http-equiv" => "X-UA-Compatible", :content => "IE=edge,chrome=1"}
  %meta{:name => "viewport", :content => "width=device-width, initial-scale=1, maximum-scale=1"}
  %meta{:content => "", :name => "description"}
  %meta{:content => "", :name => "author"}
  = stylesheet_link_tag :application, :media => "all"
  = javascript_include_tag :application
  = csrf_meta_tags
%body{:class => params[:controller]}
 .navbar.navbar-fixed-top
  .navbar-inner
    .container
    = render 'shared/navigation'
#container.container
  #main{:role => "main"}
    - flash.each do |name, msg|
      = content_tag :div, msg, :id => "flash_#{name}" if msg.is_a?(String) 
    = yield
%footer

抱歉,如果这个问题完全愚蠢,我对为什么给出这个错误有点困惑:(在日志中也有很多错误:

vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.0
vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.0
etc...

在 heroku 上仍然很差 - 很抱歉,但出了点问题。

认为问题可能出在 heroku 上的 gem bootstrap-sass 上。我已经尝试切换到瘦 Web 服务器,但它完全一团糟:(有人可以帮我解决这个问题,也许可以稍微描述一下错误。如果需要一些额外的信息,我会立即发布。谢谢...

4

6 回答 6

10

在升级到 heroku 之前,您需要预编译您的资产。

尝试rake assets:precompile然后上传到 Heroku。

于 2012-05-01T23:52:31.283 回答
6

我无法在 Heroku 上使用 bootstrap CSS 查看该站点,因此我在 上进行了以下更改config/environments/production.rb,更改了行:

config.assets.compile = false

到:

config.assets.compile = true
于 2013-05-27T10:07:44.077 回答
3

在与其他答案相同的资产编译主题上,Heroku 还需要您的config/application.rb中的以下行:

config.assets.initialize_on_precompile = false

我相信如果你这样做,你不应该rake assets:precompile在部署到 Cedar 堆栈之前运行(至少我不需要)。

更新

我将在这里添加以供参考,因为我还使用了需要我config.assets.initialize_on_precompile = trueapplication.rb中设置的 gem ,所以我通常必须在手动部署到 Heroku 之前预编译我的资产。但是,在运行
$ heroku labs:enable user-env-compile -a HEROKU_APP_NAME参考)之后,
我不再需要运行rake assets:precompile,Heroku 为我编译了我的资产。我只是希望 Heroku 保持这个功能向前发展。

于 2012-07-01T22:40:06.273 回答
3
  • rake 资产:预编译
  • config.assets.initialize_on_precompile = false .....所有这些方法对我都不起作用。

这对我有用:转到config / environment / production.rb

更改:config.assets.compile = false

到:config.assets.compile = true

于 2013-04-03T02:11:52.370 回答
2

改用bootstrap-sass-rails ......

于 2012-05-08T09:18:13.347 回答
1

试试这个

https://www.bootstrapcdn.com

我只包括那些链接,这对我来说很好。对我来说,这是一个很好的解决方案。

我也使用:
1. rake assets:precompile; 2. config.assets.compile = true

于 2016-04-03T13:47:59.397 回答