0

まず、私のgemfile

gem 'mysql2'
gem 'json'
gem 'jquery-rails'
gem 'dynamic_form'
gem 'haml-rails'
gem 'geocoder'
gem 'delayed_job_active_record'
gem 'daemons'
gem 'pry'
gem 'debugger'
gem 'unicorn'
gem 'rest-client'

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'anjlab-bootstrap-rails', '>= 2.1', :require => 'bootstrap-rails'
  gem 'therubyracer', :platforms => :ruby
  gem 'uglifier', '>= 1.0.3'
end

application.js にこのマニフェストがある場合

//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require_tree .

このように、適切な属性で入力を宣言すると

<input autocomplete="off" data-provide="typeahead" data-source="['Alicante','Albacete']" size="30" type="text">

それは魔法のように機能しますが、自分の js でこれを行うことはできません

$('#my_input').typeahead() 
// => TypeError: Object [object Object] has no method 'typeahead'

ただし、マニフェストからブートストラップを削除し、レイアウトを明示的に含めると

= javascript_include_tag "application", "bootstrap.min"

両方の方法が機能します。

誰かが私に理由を説明できますか? アセット パイプラインの醜悪さは、名前空間のブートストラップ関数ではないでしょうか? どのように修正しますか?

4

2 に答える 2

0

私はちょうど問題を解決しました。

この動作は、Bootstrap が 2 回読み込まれているときに発生するようです (理由はわかりません)。Bootstrap のいくつかの gem を試したせいかもしれませんが、本番環境で生成された /public の自動コンパイルされたアセットに問題がありました。

rake assets:clear (github.com/anjlab/bootstrap-rails が提供するタスク) を実行すると、すべて正常に動作します。

于 2012-09-14T11:01:41.957 に答える
0

使用する//= require twitter/bootstrap

https://github.com/anjlab/bootstrap-rails

編集:

どの宝石を使っていますか?twitter-bootstrap-rails、bootstrap-rails などですか?

twitter-bootstrap-rails を使用している場合は、既に呼び出しrails generate bootstrap:installてセットアップしましたか?

順番を変えると違いますか?このようにしてみてください

//= require jquery_ujs
//= require jquery
//= require twitter/bootstrap
//= require_tree .
于 2012-09-12T17:01:38.470 に答える