rails:3802
From: Ayako Arakane <arakane@r...>
Date: Tue, 14 Aug 2012 20:08:34 +0900
Subject: [rails:3802] Re: Rails3: twitter-bootstrapのdropdownがデプロイすると動かない
橋立さま ご助言ありがとうございます。 デプロイの際プリコンパイルはできているようです。 色々調べてみてわかったのですが、 developmentの環境でも「config.assets.debug」の設定を falseにしただけで正常に動作しないことがわかりました。 ・config.assets.debug = trueの場合 →以下のようにjsファイルが個別に設定されて正常に動作する <script src="/assets/twitter/bootstrap/bootstrap-dropdown.js?body=1" type="text/javascript"></script> <script src="/assets/twitter/bootstrap.js?body=1" type="text/javascript"></script> <script src="/assets/application.js?body=1" type="text/javascript"></script> ・config.assets.debug = falseの場合 →以下のようにapplication.js内に全てのスクリプトが記載され、正常に動作しない <script src="/assets/application.js?body=1" type="text/javascript"></script> jsをまとめる際のrailsの動作の影響でおかしくなっているように見えます。 環境を最新にしてもう一度確認してみることにします。 > 荒金さん > > 橋立と申します。 > > 恐らく、assetsのprecompile漏れだと思います。 > production環境では、デフォルトで自動コンパイルがオフになっているので、 > 事前にprecompileして静的なjavascriptファイルを作ってから、 > production環境にデプロイします。 > (デプロイツールを活用する方法もあります) > > また、config.assets.precompileという設定項目に記述されていない > マニフェストファイル(app/assets/application.js等)は、precompileされなかったと思います。 > application.jsはデフォルトで追加済み。 > > twitter-bootstrapのjavascriptをどうやって読み込んでいるかによりますが、 > //=require hogehogeという書式でどこかのマニフェストファイルに記述しているなら、 > config/environments/production.rbのconfig.assets.precompileにそのファイル名を追加して、 > rake assets:precompileを行う。 > application.jsから読みこんでいて、precompile漏れだけなら、rake assets:precompileを実施して、 > 最後に、compile後のassetsファイルごとデプロイする。 > > という方法で解決できるのではないかと。 > > > 後、全然関係無い話ですが、Railsのバージョンが若干古いので環境的に可能なら上げておいた方が良いかと思います。 > > > 2012年8月14日 15:11 Ayako Arakane <arakane@r...>: > > > > こんにちは、荒金と申します。 > > > > twitter-bootstrapでdropdownをjavascriptで表示する機能が、 > > production環境にデプロイすると動かないのですが、 > > どなたか対処法をご存じの方いませんでしょうか。 > > > > 原因は、Rails3のAsset Pipeline(各種jsファイルをひとつのjsに圧縮して負荷を減らす仕組み)のせいで、 > > 一時対処としてAsset Pipelineの機能をOFFにすると動くようになりました。 > > config/environments/production.rb > > ------------------------------- > > config.assets.debug = true > > ------------------------------- > > > > ただ、これをやってしまうとAsset Pipelineの機能が全く使えず、 > > cssとjsが圧縮されないので、負荷軽減されなくなってしまいます。 > > なので恒久対策とは言えないなぁと悩んでいます。 > > 誰かこれ以上の対処方法知っていたら、ご教授願います。 > > > > 主な環境は以下の通りです。 > > rails (3.2.0) > > twitter-bootstrap-rails (2.1.0) > > mysql2 (0.3.11) > > > > 宜しくお願いします。 > > > > > > -- > > ML: rails@r... > > 使い方: http://QuickML.com/ > > -- > ML: rails@r... > 使い方: http://QuickML.com/ -- ML: rails@r... 使い方: http://QuickML.com/
3800 2012-08-14 08:11 [arakane@r... ] Rails3: twitter-bootstrapのdropdownがデプロイすると動かない 3801 2012-08-14 10:10 ┗[kakyoin.hierophant+i] -> 3802 2012-08-14 13:08 ┗[arakane@r... ]