ExtJS+Railsでdeployできない、まだ。
昨日、deployがうまく行かないと悩んでたけど、なんとかなりそうな雰囲気。
precompileでjsが1つのファイルにマージされちゃうとうまく動かないような気がするので、以下のようにしてみた。
app/assets/javascripts/application.jsで 以下の部分を削除して、マージの対象から外す。
//= require_tree .
こうすると、precompileでcoffeeがjsに変換されないので、config/production.rbに以下を追加。
require "find" js_path = File.join(Rails.root, "app/assets/javascripts/") Find.find(js_path).each do |f| if f.match(/^(.*)\.coffee$/) config.assets.precompile << $1.sub(js_path, "") end end
さらに、config/production.rbで以下の設定を行う。
config.serve_static_assets = true config.assets.compile = false
あと、index.html.erbとかでjavascriptにリンクしているところは、applicationだけじゃなくてapp/app.jsも読み込むようにする。
<%= javascript_include_tag 'application'%> <%= javascript_include_tag 'app/app'%>
ローカルで確認した限りでは、これで行けるみたい。 javascriptのファイルが1つにできないのは残念だけど、ExtJS使ってる限りはしょうがないのかなぁ。 rake assets:precompleの代わりに、Sencha Cmd使えばいいんだろうけどそこは後日試すことにする。
とりあえず、明日capistranoからAWSにデプロイしてみる。