1

Rails3.0.9アプリをRails3.1.rc5に移植しています。私application.jsはRails3.1自体によって生成されたものとまったく同じです。

// This is a manifest file ...
//
//= require jquery
//= require jquery_ujs
//= require_tree .

しかし、アプリを実行してapplication.jsFirebugまたはChromeデベロッパーツールを見ると、次のように表示されます。

// This is a manifest file ...
//

ディレクティブがなくなったため、ファイルSprocketsによって処理されたように見えますが、ディレクティブはjqueryetalのコンテンツに置き換えられていません。サーバーコンソールまたはログにエラーは表示されません。

不思議なことに、blogアプリ(正規のチュートリアルアプリ)を実行すると、正常に動作します(つまりapplication.js、Firebugで調べると、jQueryのテキストが含まれています)。これはアプリ内の何かが何らかの形で干渉していることを示しているようです。スプロケット付き。誰かがそのような問題(そしてうまくいけば回避策)について聞いたことがありますか?

これが私の設定です:

$ gem list jquery

*** LOCAL GEMS ***

jquery-rails (1.0.12)
$ ruby -v
ruby 1.9.2p290 (2011-07-09) [i386-mingw32]
$ rails -v
Rails 3.1.0.rc5

何が悪いのか途方に暮れています。Gemfileをトリプルチェックしました。私は実行して再実行bundle installしましたbundle update; 私はrc3、rc4、そして今はrc5を試しました。Ruby1.9.2p290を実行しています。何か案は?

4

1 に答える 1

0

1つの回避策:old-skoolタグを使用してJavaScriptファイルを含めます。たとえば、私の(Haml)レイアウトでは:

= javascript_include_tag '/assets/jquery.js'
= javascript_include_tag '/assets/jquery_ujs.js'
= javascript_tag 'jQuery.noConflict();'

プレフィックスは、/assets/Rails 3.1.xにgemを含むアセットパスを調べるように指示するため、Sprocketsディレクティブと同じファイルを取得します。ただし、連結やその他のスプロケットの前処理は行われません。

まだより良い解決策を探しています。

于 2011-07-27T01:42:54.880 に答える