8

seyhunak の gemを使用して、Twitter Bootstrap で 3.1 Rails アプリを開発しています。

プロダクション モードでは、パイプラインのプリコンパイルを通じて、基本的なブートストラップ CSS と JS を使用できました。

RAILS_ENV=production bundle exec rake assets:precompile

gem ファイルの使用:

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 ファイル:

//= require_tree .

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

モーダルやドロップダウンなどのブートストラップ プラグインを除いて、アプリケーションは正常に動作しました。これらのプラグインは、ベンダー アセット ディレクトリ内に存在する静的な JavaScript ライブラリとして存在します。

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

これらのファイルがプリコンパイルされているかどうかわかりません。どうすればそうできますか?

4

2 に答える 2

8

それを見つけた!

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

この問題は、次のように javascripts ファイルを再配置することで解決されました。

アプリケーション.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'

アセットをプリコンプしてうまくいきました!

于 2012-04-20T17:24:12.613 に答える
1

次の内容/vendor/assets/javascriptsのファイルを配置します。vendor_js.js

//= require_tree .

今あなたの/app/assets/javascripts/application.jsインクルード行に

//= require vendor_js

vendor_js.js をカスタマイズして、特定のベンダー プラグインのみを含めることができます。たとえば//= require bootstrap-dropdown、ベンダー javascripts ディレクトリ内のブートストラップ ドロップダウンのみを含めるように使用できます。

コメントを反映するように更新

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

于 2012-04-20T09:12:00.810 に答える