关于Ruby on Rails:无法推送到heroku

Failing to push to heroku

我正在尝试将Rails 3.2.12应用程序推送到配置有postgres数据库的heroku。我第一次运行git push heroku master时,收到以下错误。

1
2
3
4
5
Running: rake assets:precompile
rake aborted!
could NOT CONNECT TO server: Connection refused
IS the server running ON host"127.0.0.1" AND accepting
TCP/IP connections ON port 5432?

进行一些故障排除后,我遇到了这篇文章,并将以下行放在我的config/application.rb文件中:

1
config.assets.initialize_on_precompile = FALSE

然后我运行heroku run rake db:migrate开始填充heroku数据库并收到以下错误:

1
2
3
4
5
6
Running rake db:CREATE attached TO terminal... up, run.4115
rake aborted!
undefined LOCAL variable OR method `config' for main:Object
/app/config/application.rb:5:in `
<top (required)>'
/app/Rakefile:5:in `require'

/app/Rakefile:5:IN `<top (required)>'

有趣的是,application.rb的第5行是我添加的前一行:

1
config.assets.initialize_on_precompile = FALSE

最后,我注意到无法使用application.rb文件中的上述行在本地启动数据库-我收到以下错误:

1
config/application.rb:5:IN `<top (required)>': undefined local variable or method `config' for main:Object (NameError)

这个问题似乎很容易解决。22.如何在不更改application.rb文件的情况下将其部署到heroku以及如何在本地服务器上运行它?


确保config.assets.initialize_on_precompile = false在这样的正确位置:

1
2
3
4
module YourApplicationName
  class Application < Rails::Application

    config.assets.initialize_on_precompile = FALSE

确保重新启动所有内容。

此外,如果上述方法无效,则暂时的解决方法是将您的Gemfile更改为:

1
2
3
4
5
6
7
GROUP :development, :test do
  gem 'sqlite3'
END

GROUP :production do
  gem 'pg'
END

然后运行bundle install --without production

Heroku不建议使用其他数据库进行开发和生产。但是,这将起作用,并且我已经多次使用它来轻松启动和运行


我尝试添加

1
config.assets.initialize_on_precompile = FALSE

到" config / application.rb "并将我的项目上传到heroku,它被上传而没有任何错误,并且即使rake命令在heroku上也不起作用。

我在heroku上的这篇文章中发现:
https://devcenter.heroku.com/articles/rails-4-asset-pipeline
上面说加

1
config.serve_static_assets = TRUE

到您的config / application.rb,然后它可以正常工作。在我的计算机上使用" rake asset:precompile "进行测试时,它可以正确地进行预编译。而且我的项目已正确上传,并显示出非常好的效果。