我有以下文件夹结构:
在index.html中,我在头部添加了以下行:
<script data-main="js/main" src="js/libs/require.js"></script>
当我向main.js添加一个简单的警报时,它可以工作。当我想使用jQuery时,它不起作用:
require(['libs/jquery'], function ($) {
$('#test').html('123');
});
在chrome web检查器中,我看到jquery成功加载,但文本没有出现在我的div中。当我将jquery从./js/libs
中移出并将其放入./js
时(并且当然将依赖项更改为['jquery']
)时,它可以正常工作。
我做错了什么?为什么我不能把jquery放在./js/libs
中以保持组织有序?
由于
答案 0 :(得分:8)
如果我配置路径
require.config({
paths: {
'jquery': 'libs/jquery'
}
});
并将要求更改为:
require(['jquery'], function ($) {
$('#test').html('123');
});
它看起来很有效。如果有人能解释我原因。
答案 1 :(得分:0)
您必须提供basePath才能正常工作。 在你的情况下,它只是 js 。你可以在main.js文件的开头做到这一点。
require.config({
baseUrl: '/js'
});
之后,此代码将起作用,因为它会将baseUrl与您的相对URL连接起来。
require(['libs/jquery'], function ($) {
$('#test').html('123');
});