私のアプリケーション構造は次のようになります。
...
javascripts/
- main.js
lib/
- jquery-1.9.0.min.js
- require.js
次のような HTML ページがあります。
<script type="text/javascript" data-main='/assets/javascripts/main' src='/assets/javascripts/lib/require.js'></script>
私のmain.jsは次のようになります:
//main.js
require.config({
paths: {
jquery: 'lib/jquery-1.9.0.min' }});
require(['jquery'], function($) {
return $(function() {
return console.log('dom ready');
});
});
これはすべて正常に機能し、コンソールの HTML ページには「dom ready」と表示されます。問題は、パス構成を削除して、次のように jquery をロードしようとしたときです。
//Updated main.js
require(['lib/jquery-1.9.0.min'], function($) {
return $(function() {
return console.log('dom ready');
});
});
パス構成を削除し、パスを指定してjqueryをロードしようとしました。これにより、$ 変数に関して「未定義は関数ではありません」と表示されます。奇妙なことに、require.js によって開始されたネットワーク経由で jquery-1.9.0.min が送信されているのを今でも確認できます。ここで何が起こっているのですか?これはバグですか?