2015年3月14日土曜日

Sinatora + bootstrap 「Uncaught SyntaxError: Unexpected token var」の対処方法

Sinatora + bootstrap でWebアプリを作って、Capistranoでデプロイしたところ

ブラウザのconsoleに
Uncaught SyntaxError: Unexpected token var
というエラーがでてjsが正しく動作しなかった。

調べるとbootstrap.jsの中で発生していた。
どうもSinatraのjsの圧縮が原因のよう。


app.rbのassets句でjsの圧縮方法を指定できるが、下記のようにそこを「js_compression :closure, :level=>"WHITESPACE_ONLY"」にしたら直った。

assets do
serve '/javascripts', from: 'assets/javascripts'
serve '/stylesheets', from: 'assets/stylesheets'

js :application, [
'/javascripts/jquery-*.js',
'/javascripts/jquery.zclip.js',
'/javascripts/*.js',
'/javascripts/*.coffee'
]

css :application, [
'/stylesheets/*.css',
'/stylesheets/*.scss'
]

js_compression :closure, :level=>"WHITESPACE_ONLY" # :jsminだとbootstrap.jsないでエラーが起こる。closureにしても "WHITESPACE_ONLY"指定しないとだめ。
#js_compression :jsmin
css_compression :sass
end


デフォルトはjsminだが、圧縮なしのオプションはない模様。

0 件のコメント:

コメントを投稿