在子文件夹中jQuery不使用RequireJS

时间:2012-08-04 15:39:49

标签: requirejs

我有以下文件夹结构:

  • 的index.html
  • JS​​ /
    • 库/
      • require.js
      • 的jquery.js
    • main.js

在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中以保持组织有序?

由于

2 个答案:

答案 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');
});