0

私は、require.js の構成で設定されたパスが受け入れられない状況に遭遇しています。その理由について 2 つの推測があります。必要な構成のパスに次のエントリを設定しました。

"initVars": "../initVars"

そして、モジュールでは、それを単に次のように正常に参照できます"initVars"

ただし、スクリプト タグ src'ing require.js のすぐ下の HTML 内のスクリプト ブロックで上記を直接参照しようとしています (もちろん、「data-main」属性で構成ファイルを指定します)。

//require(['initVars'], function(VARS) { // *doesn't work*
require(['../initVars'], function(VARS) {
    VARS.init({
        ENV: "${env}"; //"Play" framework "template" variable
    });
});

したがって、この特定の状況でフルパスを指定する必要がある理由についての私の2つの推測は次のとおりですが、誰かが確実に教えてくれることを願っています:

  1. 相対パスは「require()」の呼び出しでは受け入れられず、「define()」の呼び出しでのみ受け入れられます
  2. 「require()」が src されたスクリプト ファイルからではなく、HTML で直接呼び出された場合、相対パスは受け入れられません。
4

1 に答える 1

4

ドキュメントのdata-main エントリ ポイントセクションを参照してください。

注: data-main モジュール用に require.js が生成する script タグには、async 属性が含まれています。これは、data-main スクリプトのロードと実行が、同じページで後で参照される他のスクリプトより前に終了すると想定できないことを意味します。

また、上記がAPIドキュメントに追加される前に書かれたこの古い回答も:

Require.js バグ ランダム リソースの読み込みに失敗しました

于 2013-08-16T13:12:49.140 に答える