我正在尝试将我的rails 3.2.12 app推送到heroku,后者配置了postgres数据库。我第一次跑git push heroku master
时收到了以下错误。
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?
经过一些问题排查后,我发现了this个帖子并将以下行放在我的config/application.rb
文件中:
config.assets.initialize_on_precompile = false
然后我运行heroku run rake db:migrate
开始填充heroku数据库并收到以下错误:
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行是我添加的上一行:
config.assets.initialize_on_precompile = false
最后,我注意到我无法在application.rb文件中使用上面的行本地启动数据库 - 我收到以下错误:
config/application.rb:5:in `<top (required)>': undefined local variable or method `config' for main:Object (NameError)
这个问题看起来像是一个问题22.如何在不改变application.rb文件的情况下部署到heroku并在本地服务器上运行它?
答案 0 :(得分:3)
确保config.assets.initialize_on_precompile = false
位于正确的位置,如下所示:
module YourApplicationName
class Application < Rails::Application
config.assets.initialize_on_precompile = false
确保重启所有内容。
另外,如果上述方法不起作用,暂时解决方法是将Gemfile
更改为:
group :development, :test do
gem 'sqlite3'
end
group :production do
gem 'pg'
end
然后运行bundle install --without production
Heroku不建议使用其他数据库进行开发和生产。然而,这将工作,我已经多次使用它来轻松起床和运行
答案 1 :(得分:0)
我尝试添加
config.assets.initialize_on_precompile = false
to&#34; config / application.rb&#34;并上传我的项目到heroku,它上传没有任何错误,它无法正常工作,甚至rake命令都无法在heroku上运行。
我发现这篇关于heroku的文章: https://devcenter.heroku.com/articles/rails-4-asset-pipeline 其中说添加
config.serve_static_assets = true
到您的 config / application.rb ,然后它正常工作。使用&#34; rake资产进行测试时,它可以正常预编译:预编译&#34;在我的电脑上。并且我的项目已正确上传并显示出来的东西。