1

次のようなディレクトリ構造があります。

├── index.html
├── static
│   └── js
│       ├── main.js
│       ├── jquery.js
│       └── require.js
└── subfolder
    └── index.html

私のトップレベルindex.htmlでは、このようにrequire.jsをロードしていますが、うまくいきます:

<script data-main="static/js/main" src="static/js/require.min.js"></script>

ただし、ではsubfolder/index.html、require.js を正常にロードできません。

<script data-main="../static/js/main" src="../static/js/require.min.js"></script>

「jqueryのスクリプトエラー」が発生し、mainモジュールの各依存関係についても同じです。

baseUrlrequire.jsのは に設定されていstatic/jsます。これらのページはローカルで使用することを目的としているため、絶対 URL は使用できません。サブフォルダーから require.js を動作させるにはどうすればよいですか?

main.js ファイルの内容:

require.config({
    baseUrl: 'static/js',
    paths: {
        'jquery': 'jquery-2.0.3',
    }
});

require(['jquery'], function($) { ... }
4

1 に答える 1

2

解決策は、まったく設定baseUrlしないことでした:

構成で baseUrl が明示的に設定されていない場合、デフォルト値は、require.js をロードする HTML ページの場所になります。data-main 属性が使用されている場合、そのパスは baseUrl になります。

設定を削除するbaseUrlと、上記の例が正しく機能するようになりました。

于 2013-10-08T13:48:14.853 に答える