Ruby on rails 避免rake资产的正确方法是什么:Heroku上的预编译错误
我运行在Rails 3.2.2上,部署在Cedar堆栈上。我仍然得到以下错误:Ruby on rails 避免rake资产的正确方法是什么:Heroku上的预编译错误,ruby-on-rails,ruby-on-rails-3,heroku,asset-pipeline,Ruby On Rails,Ruby On Rails 3,Heroku,Asset Pipeline,我运行在Rails 3.2.2上,部署在Cedar堆栈上。我仍然得到以下错误: -----> Writing config/database.yml to read from DATABASE_URL -----> Preparing app for Rails asset pipeline Running: rake assets:precompile rake aborted! could not connect to server: C
-----> Writing config/database.yml to read from DATABASE_URL
-----> Preparing app for Rails asset pipeline
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.assets.initialize\u on\u precompile
设置为false,但提到:
确保测试rake资产:在部署之前在本地预编译。信息技术
可能会暴露资产引用应用程序对象或
方法,因为这些方法在开发模式中仍然在范围内
此标志的值
像这样的一些文章建议使用。但即使是这样,也有它自己的含义,因为它仍然处于测试阶段
我在网上阅读了其他几个来源,包括:
所有这些都有不同的解决方案。那么,避免这种错误的正确方法是什么呢?有人在Heroku实验室遇到什么大问题吗?有更好的方法吗
PS。我只是想说清楚。运行
rake资产:precompile RAILS\u ENV=development
或rake资产:precompile RAILS\u ENV=production
是本地运行的正确方式吗?问题源于这样一个事实,即当您运行rake任务时,您的应用程序正试图连接到postgres。消除此错误的唯一方法是停止此错误的发生,或者使用您提到的user\u env\u compile
加载项。(1)我总是按照您的建议添加此错误
config.assets.initialize_on_precompile = false
(2) 但是,如果使用ActiveAdmin和/或Desive,则在对routes.rb进行编码时,将其路由排除在外,如下所示
unless ARGV.join.include?('assets:precompile')
ActiveAdmin.routes(self)
devise_for :admin_users, ...etc....
devise_for :users, ...etc...
devise_scope :user do
get "/login", ..etc
end
根据和其他地方错误日志是否告诉您一些有用的信息?它表明我已经阅读了关于在链接上应用解决方案的混合结果谢谢,刚刚遇到了这个问题。