2013-12-12 53 views
0

運行RAILS_ENV=production bundle exec rake assets:precompile和推到Heroku上後,我得到這個錯誤:Heroku的忽略公共/資產/清單 - * JSON

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? 

完整的日誌是在這裏:http://dpaste.com/hold/1503531/

怎麼能這樣呢,當我有一個public/assets/manifest-*.json文件簽入?我正在使用Rails 4.0.2。

在我production.rb我:

config.assets.compile = false 
+1

的可能的複製http://stackoverflow.com/questions/17733593/rails-4-heroku-doesnt-recognize-precompiled-manifest-指紋 - json。儘管我無法在鏈接的線程中製作他/她的解決方案的正面或反面。 – janfoeh

+0

我也看到了這個問題。我也無法理解解決方案。 – nnyby

+0

在推向Heroku時,或者之後會發生錯誤嗎?如果它在推動,你能告訴我們完整的推送日誌嗎? – janfoeh

回答

3

我固定的問題!我添加了一個空的public/assets/manifest.yml文件並推送到heroku,並且在推送時不再嘗試預編譯。

Detected manifest.yml, assuming assets were compiled locally 
+0

好的。 :資產組在Rails 4中不再存在:http://stackoverflow.com/questions/16406204/why-did-rails4-drop-support-for-assets-group-in-the-gemfile – janfoeh

+0

@janfoeh變化實際上並沒有解決它。我已經更新了我的答案 - 看起來好像heroku仍然依賴於'public/assets/manifest.yml'的存在,儘管它在rails 4中已被棄用。 – nnyby

0

確保您設置config/application.rbconfig.assets.initialize_on_precompile = false,以防止資產合輯初始化一個完整的Rails實例。如果沒有設置,Rails實例將被實例化並嘗試像正常一樣開始,嘗試連接到數據庫。

config.assets.initialize_on_precompile = false 

這是在紅色警告框下Precompiling Assets和大膽提到它說之前,「Heroku的要求這是錯誤的。」

+0

'config.assets.initialize_on_precompile'已經不在Rails 4中:http://stackoverflow.com/a/20008359/173630 https://github.com/rails/rails/blob/master/railties/lib/rails/application/configuration.rb – nnyby

+1

該設置將不會被刪除,直到4.1根據提交信息:https://github.com/rails/rails/commit/2d5a6de4e227ee97ccbea691c69728b7e31bf678#diff-19128a84fe2ae7019ccdb86efc86f684在Rails 4中是否有相當於? –

1

gem 'capistrano-rails', '~> 1.1.3'

issue固定在1.1.3版本