0

何かが間違っていて、私はそれを理解することができません。

_Layout.cshtmlもっている:

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

      @RenderSection("scripts", required: false)
</body>

/スクリプト/main.js:

require.config({
   paths: {
       "jquery": "jquery-1.9.1"
   }
});

index.cshtml のすべての方法:

@section scripts
{
    <script type="text/javascript">
        require(['jquery'], function ($) {

        });
    </script>
}

jquery.jsを見つけようとして404がスローされます。私は何を間違っていますか?

upd: はい、main.js が呼び出され、index.cshtml のすべてにコメントを付けて main.js の最後に配置すると、次のようになります。

require([
    'jquery'
], function ($) {
   $(function(){
      alert('jquery loaded');
   })
});

それはメッセージを示しています

4

4 に答える 4

2

あなたの問題が何であるかが私に起こりました。マップを使用する必要がある場所でパスを使用しています。

以下を試してみてください。jquery ファイルが短い名前にマップされます。

require.config({
   baseUrl: '/scripts',
   map: {
       "jquery": "jquery-1.9.1.js"
   }
});

さらに、インデックスにヒットすると、requirejs ファイルが間に合わない可能性があります。最初にインデックスで宣言すると、競合状態を防ぐことができると思います。

于 2013-03-20T20:16:56.907 に答える
1

@David Lは正しいです。

index.cshtml のスクリプト ブロック内の JavaScript が実行されるとき、require.configブロックはまだ実行されていない可能性があります。

于 2013-03-20T20:17:27.570 に答える
1

_Layout.cshtml の head タグに script セクションを配置する必要があるようですが、main.js の参照は通常 head にあるため、config が先に呼び出されます。それが理由だと思います。

于 2013-03-21T03:24:56.640 に答える
0

data-mainそのため、ページから属性を削除して_Layout.cshtmlmain を直接呼び出すことになりました。

@section scripts
{
    <script type="text/javascript">
        require(['Scripts/main'], function () {
            require([ "views/home-index"] );
        });
    </script>
}
于 2013-03-20T20:30:53.537 に答える