【问题标题】:Ruby on Rails deployment on Heroku - bootstrap-sassHeroku 上的 Ruby on Rails 部署 - bootstrap-sass
【发布时间】:2012-04-12 08:04:51
【问题描述】:

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

这是我的 gem 文件:

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 服务器,但它完全一团糟:( 有人可以帮我解决这个问题,也许可以稍微描述一下错误。如果需要一些额外的信息,我会立即发布。谢谢......

【问题讨论】:

  • 你有没有预编译你的资产,如果没有预编译然后部署。可能更多日志信息有用

标签: ruby-on-rails heroku twitter-bootstrap ruby-on-rails-3.2 asset-pipeline


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    config.assets.compile = false
    

    收件人:

    config.assets.compile = true
    

    【讨论】:

      【解决方案3】:

      在与其他答案相同的资产编译主题上,Heroku 还在您的 config/application.rbrequires 下一行:

      config.assets.initialize_on_precompile = false
      

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

      更新

      我将在此处添加参考,因为我还使用了需要我在 application.rb 中设置 config.assets.initialize_on_precompile = true 的 gem,所以我通常必须在手动部署之前预编译我的资产到赫罗库。但是,运行后
      $ heroku labs:enable user-env-compile -a HEROKU_APP_NAME(reference),
      我不再需要运行rake assets:precompile,Heroku 为我编译了我的资产。我只是希望 Heroku 继续推进这个功能。

      【讨论】:

        【解决方案4】:
        • rake 资产:预编译
        • config.assets.initialize_on_precompile = false ...... 所有这些方法都不适合我。

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

        更改:config.assets.compile = false

        到:config.assets.compile = true

        【讨论】:

          【解决方案5】:

          【讨论】:

            【解决方案6】:

            试试这个

            https://www.bootstrapcdn.com
            

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

            我也使用:
            1. rake assets:预编译; 2. config.assets.compile = true

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2013-05-25
              • 2023-03-31
              • 2012-05-23
              • 2019-04-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多