困惑于requirejs中的baseUrl

时间:2013-07-23 14:05:53

标签: requirejs base-url

这是我的文件夹结构:

project
|---src
|   |---lib/require.js
|   |---object/extend.js
|   |---main.js
|
|---index.html

在main.js中,我导入require.js和main.js,成功:

<script type="text/javascript" src="src/lib/require.js" data-main="src/main"></script>

然后在main.js中,我尝试导入extend.js:

requirejs.config({
    baseUrl: 'src'
});

require(["object/extend.js"], function (extend){

});

但它失败了,它告诉404,我看到请求是:

http://127.0.0.1:8000/object/extend.js

似乎baseUrl无效

所以我的代码出了什么问题?我怎样才能让baseUrl工作?

1 个答案:

答案 0 :(得分:0)

你的要求不应该有.js。它应该是:

require(["object/extend"], function (extend){

});

当RequireJS在模块名称中看到一个点时,它似乎认为这是一个完整的URL并且不处理baseUrl等。但是,请注意,如果你已经在模块名称中仍然使用一个点将其定义为路径映射:

require.config({
  paths: {
    'a.b': 'libraries/something/a.b'
  }
});

然后需要它:

require(['a.b'], function (ab){

});