デプロイ中にアセットをプリコンパイルするために Capistrano を使用していますが、あまり役に立たないエラーが発生します。
* executing "cd -- path/to/releases/20130507161214 && bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile"
*** rake aborted!
*** wrong argument type nil (expected Data)
*** (in /path/to/app/assets/javascripts/application.js)
*** /path/to/gems/therubyracer-0.11.4/lib/v8/context.rb:67: in 'New'
これが参照されている私のapplication.js
ものです:
//= require jquery
//= require jquery_ujs
//= require bootstrap
アップデート
そのため、完全に削除して再度実行しようとしましたが、別のファイルapplication.js
について不平を言いました(ただし、同じ役に立たないエラーです)。js
次に、すべてのjs
ファイルを削除すると、ファイルについて不平を言い始めましたcss
。
すべての js および css ファイルが削除された場合、プリコンパイルは成功します (ただし、必要な js および css ファイルがないことは明らかです)。
画像以外のすべてのアセットに.js.coffee
とを使用しています。.css.scss
アップデート
@TomDaviesの回答は確かに役に立ちましたが、まだ問題があります。展開中、プリコンパイルに失敗し、情報が得られませんでした。そこで、トムが言ったことを実行しました。開発マシンでプリコンパイルしましたが、実稼働環境で、問題があることに気付きました。
それが私に与えたエラーは「予期しないINDENT」でしたが、行番号はわかりません。ファイル名だけです...
最終的に、ajax リクエストにコンマがないことに気付きました。どうやら開発環境ではそれがなくても動作しますが、それなしではプリコンパイルされません...
これが私が持っていたものです:
$.ajax 'some/url'
success:
alert 'yay!'
必要なものは次のとおりです。
$.ajax 'some/url',
success:
alert 'yay!'
一番上の行の末尾にあるカンマに注意してください...開発において優れたプリコンパイルが行われるようになりました。開発マシン (ただし実稼働環境) でのプリコンパイル中にエラーを修正すると、展開の問題が修正されると確信していましたが、役に立ちませんでした。上部の同じエラーでまだ失敗していますwrong argument type nil (expected Data)
。
tl;dr
開発マシンでは実行できますが、運用rake assets:precompile RAILS_ENV=production
マシンでは動作せず、上部にエラーが表示されます。これをデバッグする方法がわかりません。