代码之家  ›  专栏  ›  技术社区  ›  Peeja

Heroku应用程序在启动时自动失败

  •  4
  • Peeja  · 技术社区  · 15 年前

    我试图在Heroku上部署一个应用程序,但还没有运行。我看到Rails 500页(“很抱歉,出了点问题”),但是当我 heroku logs 我看不出什么有趣的事:

    ==> exceptional.log <==
    # Logfile created on Tue Nov 02 11:27:18 -0700 2010 by logger.rb
    [INFO] (init.rb:21) Tue Nov 02 18:27:18 UTC 2010 - Loading Exceptional 2.0.26 for 2.3.5
    
    ==> dyno-2858334.log <==
    >> Thin web server (v1.2.6 codename Crazy Delicious)
    >> Maximum connections set to 1024
    >> Listening on 0.0.0.0:15336, CTRL+C to stop
    
    ==> production.log <==
    # Logfile created on Tue Nov 02 11:27:17 -0700 2010
    

    如您所见,我已经安装了Exception插件,Exception没有报告任何异常。

    在Heroku上的应用程序启动过程中,什么可能会悄无声息地失败?

    3 回复  |  直到 15 年前
        1
  •  4
  •   Peeja    15 年前

    答案是:我们的应用程序使用了Sass,它试图将编译后的CSS写入 public/ 目录。在Heroku上,它在只读文件系统上。相反,我安装了 Hassle ,它将编译后的Sass CSS放在 tmp/ ,它是读写的。

    Heroku支持通过将环境设置为 development

    heroku config:add RACK_ENV=development
    

    Hassle站点建议将Hassle作为插件添加,但当我可以使用gems时,我不喜欢使用插件。我把它添加到Gemfile,然后把它添加到 environment.rb

    # existing requires
    # ...
    
    require 'hassle'
    
    Rails::Initializer.run do |config|
      # ...
      # existing config
      # ...
    
      config.middleware.use Hassle
    end
    

    现在它只起作用了。

        2
  •  3
  •   Gazler    15 年前

    尝试执行(从应用程序的根目录):

    heroku rake db:migrate
    heroku db:push
    
        3
  •  1
  •   Ariejan    15 年前

    你看到的事实 Rails的500页

    一个问题可能是数据库未迁移。尝试迁移它或上载开发数据库。