2012-03-22 4 views
1

サイト上の別のフォルダからRequireJSをロードして、他のものがすべて存在する/Scriptsフォルダよりも負荷がかかるようにしています。私はFiddlerでページの読み込みを見ていますが、jQueryリクエストが正しいURLの代わりに/Scripts/jquery.jsに出てくるのがいつもわかります。私はこれ持って/Scripts/main.jsjQueryのRequireJS設定

<script src="@Url.Content("~/Scripts/require.js")" type="text/javascript" data-main="@Url.Content("~/Scripts/main")"></script> 

:私のマークアップで

は、私はこれを持っているフィドラーで

require.config({ 
    waitSeconds: 10, 
    paths: { 
     "jquery": "/N2/Resources/Js/jquery-1.7", 
     "modernizr": "modernizr-2.0.6-development-only" 
    } 
}); 

require(["jquery", "jquery.utility", "jquery.link-decorators", "jquery.google-analytics", "accessibility", "modernizr"], function ($) { 

... omitted 

}); 

を、私は正しいmodernizr要求が出て行くのを見たが、jQueryのための要求が行きます/Scripts/jquery.jsについては、

テストでは、私のmodernizrの行を"modernizr" : "/N2/Resources/Js/modernizr-2.0.6-development-only"に変更しました。要求がそのリソース(もちろん404を返します)に出ます。だから私は、RequireJSが私の設定を見て、それを処理していることを知っています。

注記:私は、RequireJSのjQueryを扱うさまざまな方法について認識しています。すべての私のプラグインはモジュールを定義しているので、順不同のロードは問題にはなりません。私は、AMDを意識したjQuery 1.7を使用しています。

答えて

3

私はそれを理解しました。私のページの本文にマークアップでは、私は、これは/Scripts/jqueryの要求を引き起こしているものである

<script type="text/javascript"> 
require(["jquery", "Rotator"], function ($, Rotator) { 
    $(document).ready(function() { 
     var homeRotator = new Rotator(); 
     homeRotator.initialize($('#home-rotator ul.rotator-content li'), { viewTime: 30000, transitionTime: 2500 }); 
    }); 
}); 

を持っています。 Rotatorモジュールはjqueryに依存します。ここでjqueryの依存関係を削除すると、ページが正しく読み込まれます。問題は、で非同期にロードされているmain.jsに私のrequire.configの設定を入れているようです。 main.jsがロードされる前に、上記のスクリプトが本体で検出されます。そのため、jQueryの要求は、構成された場所ではなく、デフォルトの場所に出力されます。

構成設定をページ先頭の<script/>タグに移動したところ、動作しています。

+0

答えを受け入れる、笑。 – theblang

関連する問題