0

RequireJS に少し問題があります。

.NET によって生成されたパラメーターを必要とする JS コードを含むいくつかのコントロールを持つ .NET サイトがあります。RequireJS を自分のサイトに実装しようとしてきましたが、小さな問題が発生しました。

ページの上部に RequireJS を参照するスクリプト タグと、そのスクリプト タグ内の main.js への参照を含めました。main.js 内には次のコードがあります。

require.config({
    paths: {
        'jquery' : '//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min'
    }
});

次に、Flash ビデオを表示する Web コントロールがあります。この Web コントロールには、次のコードが含まれています。

require(['jquery'], function ($) {
    if (!eval('<%= FlashAvailable.ToString().ToLowerInvariant() %>')) {
        var url = '<%= FallbackImageUrl %>';
        if (!url) {
            $("#flashcontent").remove();
        }
        return;
    }

    var link = '<%= Page.ResolveUrl("~/Templates/AlloyTech/scripts/slideshow.swf") %>';
    var width = '<%= Width %>';
    var height = '<%= Height %>';

    var variables = { xml: '<%= ConfigXml %>' };
    var params = { wmode: 'transparent' };
    var attributes = { };

    swfobject.embedSWF(link, 'flashcontent', width, height, '10', false, variables, params, attributes);
});

これでうまくいくはずですよね?ただし、ページを実行すると、2 組のエラーが発生します。

 1. GET http://episerversite6/scripts/jquery.js 404 (Not Found)
 2. Uncaught Error: Script error http://requirejs.org/docs/errors.html#scripterror

jquery のパスを「http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min」と定義したのに、jquery.js を見つけようとするのはなぜですか。ローカル フォールバック jQuery ファイルであるパスの 2 番目のパラメーターを追加しようとしましたが、すべてが機能しますが、コンソールに最初のエラーが表示されます。

次に、scripterror メッセージが表示されるのはなぜですか? 私は自分のコードを何度かチェックしましたが、何か問題があるようには見えません。jQuery がロードする前に実行されるコードと関係がありますか?

だから私が求めているのは、インラインスクリプトでRequireJSを使用する最良の方法は何ですか? 誰かが助けてくれることを願っています。前もって感謝します。

4

2 に答える 2

0

構成パスがロードされる前に、必要なモジュール「jquery」を探しています。したがって、基本的にrequire.jsは、「jquery」がjavascriptファイルであると想定し、「data-main」(HTMLヘッダーで定義)と同じディレクトリで検索しようとします。

私は同じ戦いを戦っているので、この特定の状況に対する解決策が何であるかはわかりませんが、これは、このページの内容から判断して、jquery.js 作成者がプラグインを使用することを意図した方法とは異なるようです。一般的なエラー

于 2012-08-01T01:04:28.173 に答える