8

seyhunak's gemを使ってTwitter Bootstrapで3.1 Railsアプリケーションを開発しています。javascript - Twitterブートストラップjqueryプラグインが生産用にコンパイルされていません

group :assets do 
    gem 'sass-rails', '~> 3.1.5' 
    gem 'coffee-rails', '~> 3.1.1' 
    gem 'uglifier', '>= 1.0.3' 
    gem "twitter-bootstrap-rails" 
end 

そしてapplication.jsファイル::宝石ファイルを使用して

RAILS_ENV=production bundle exec rake assets:precompile 

:プロダクションモードで

は、私は、パイプラインのプリコンパイルを通じて基本的なブートストラップCSSやJSを使用することができました

//= require_tree . 

//= require jquery 
//= require jquery_ujs 
//= require twitter/bootstrap 
//= require bootstrap-tab 
//= require bootstrap-modal 
//= require bootstrap-dropdown 
//= require bootstrap-popover 

アプリケーションは、moなどのブートストラッププラグインを除いて正常に機能しましたdalsとドロップダウン。

/vendor/assets/javascripts/bootstrap-dropdown.js 
... 

私はこれらのファイルがプリコンパイルされているかどうかわからないかどうか、どのように私はそうするように管理することができます。これらのプラグインは、静的javascriptのライブラリベンダーの資産ディレクトリ内の既存の存在しますか?あなたの/vendor/assets/javascripts代わりに

答えて

8

見つけた!

ブートストラップの問題ではなく、正しくjQueryをプリコンパイルすることで問題になりませんでした。また、個々のプラグインのjavascriptファイルを含める必要はありません。それらはすでにメインのtwitter/bootstrapに含まれています。次のように

問題は、再配置のJavaScriptファイルによって解決された:

application.js

//= require jquery 
//= require jquery_ujs 
//= require twitter/bootstrap 

をGemfile

group :assets do 
    gem 'sass-rails', '~> 3.1.5' 
    gem 'coffee-rails', '~> 3.1.1' 
    gem 'uglifier', '>= 1.0.3' 
    gem "twitter-bootstrap-rails" 
end 

gem 'jquery-rails', '>= 1.0.12' 

資産をPrecomplingと働いていました!

+0

これは正確に私のために働く解決策ではありませんでしたが、それは正しい方向に私を得た。ありがとう – Arcolye

+1

@Arcolye - どうしたのか教えてください... – Philip

1

次の内容のファイルvendor_js.js:あなたの/app/assets/javascripts/application.js

//= require_tree . 

は、あなたが特定のベンダーのプラグインのみを含めるようにvendor_js.jsをカスタマイズすることができますライン

//= require vendor_js 

を含めます、例えば//= require bootstrap-dropdownを使用して、ベンダーのjavascriptsディレクトリー内のブートストラップ・ドロップダウンのみを組み込むことにより、コメント

を反映するために

UPDATE手動ベンダー/ JavaScriptのにブートストラップJSファイルを置くので、あなたのapplication.jsからすべてのブートストラップ関連require Sを削除してくださいし、上記のようにvendor_js.jsに貼り付けます。パスが正しいことを確認してください(ファイルをサブディレクトリに置く場合に備えて)。また、popoverは最初に読み込まれるツールチップに依存するため、各ファイルを別々にインクルードし、ポップオーバーの前にツールチップを含めるようにしてください。

+0

私はこの方法で試してみましたが、開発モードで動作し、資産を再度コンパイルし、プラグインなどのプロダクトはまだプロダクションモードで動作しませんでした:( –

+1

アセットが正しくコンパイルされているかどうか、ファイル名に?理論的には、彼らはすべきです。もしそうであれば、別の問題かもしれません。名前空間の衝突など。私はtwitter-bootstrap-railsを使っていませんでしたが、あなたは本当に "assets"グループに入っていますか?また、どのように2つの特定のプラグインをベンダのディレクトリに取得しましたか、他のプラグインは別のディレクトリに配置されているように見えますか? – emrass

+0

プラグインのコードは、プリコンパイルされたapplication.js内にあるようですが、何らかの理由でブラウザが認識できません。 –

関連する問題