我有一個運行在Heroku Cedar上的Rails 3.1應用程序,它有一個定製的管理面板。 管理員只是命名空間的控制器/視圖組合,它們位於controllers/admin和views/admin中。 我也「命名空間」的資產:叫他們的資產/ JavaScript的/ admin.js.coffe和資產/樣式表/ admin.css.scss和包括從佈局/管理/ application.html.haml部署Rails 3.1命名空間資產到Heroku
完美的Heroku將應用程序(css.scss | js.coffee)編譯爲javascript/stylesheet文件。當我訪問前端應用程序時,它正常工作。
但是,當我參觀「/管理員」我得到以下錯誤:
當我訪問的網站在生產中我得到以下錯誤:
2011-09-19T15:47:18+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/execjs-1.2.5/lib/execjs/runtimes.rb:46:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
2011-09-19T15:47:18+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/execjs-1.2.5/lib/execjs.rb:5:in `<module:ExecJS>'
2011-09-19T15:47:18+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/execjs-1.2.5/lib/execjs.rb:4:in `<top (required)>'
2011-09-19T15:47:18+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:240:in `require'
2011-09-19T15:47:18+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:240:in `block in require'
2011-09-19T15:47:18+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:223:in `block in load_dependency'
2011-09-19T15:47:18+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:240:in `require'
2011-09-19T15:47:18+00:00 heroku[web.1]: Process exited
2011-09-19T15:47:20+00:00 heroku[web.1]: State changed from starting to crashed
根據Heroku's documentation我不需要把寶石像therubyracer-heroku
添加到我的gem文件中。我的管理資產文件清單文件和類似用途的資產清單:
# application.js.coffee
#= require jquery
#= require jquery_ujs
# admin.js.coffee
#= require jquery
#= require jquery_ujs
有什麼想法?
更新9月19日:事實證明,管理資產從來沒有編入public/assets
也不存在於public/assets/manifest.yml
是的,也是這樣。沒有幫助。 – Ivan