Require.js:我如何判断是否需要不提前转斜线?

时间:2014-01-01 18:36:55

标签: javascript jquery requirejs

我正在使用require.js构建一个小页面。我在某些方面是一个js noob,并且我没有达到目前的工具生态系统的速度,因此我的基本问题是关于require。我有一个我想从api获取的js文件。这就是我所拥有的:

require.config({
  baseUrl: '/api/MyFiless/GetFile?fileName=',
  paths: {
    jquery: 'CommonJquery-2.0.3',
...
});

问题在于此请求

/api/MyFiles/GetFile?fileName=/CommonJquery-2.0.3.js

我如何告诉要求:

/api/MyFiles/GetFile?fileName=CommonJquery-2.0.3.js

一般来说我想以这种方式获取很多js文件,我该怎么做?

2 个答案:

答案 0 :(得分:1)

似乎RequireJS确保baseUrl属性以尾部斜杠结尾:

(require.js中的第1247行:source

        configure: function (cfg) {
            //Make sure the baseUrl ends in a slash.
            if (cfg.baseUrl) {
                if (cfg.baseUrl.charAt(cfg.baseUrl.length - 1) !== '/') {
                    cfg.baseUrl += '/';
                }
            }

答案 1 :(得分:0)

正如@redmallard和我提到的,你的问题是requirejs api中定义的行为。如果您不想破解requirejs(可能是合适的)来解决您的问题,您可能需要进行如下配置。虽然不太干净,但这会创建有效的网址

require.config({
  baseUrl: '/api/MyFiless/GetFile',
  paths: {
    jquery: '?fileName=CommonJquery-2.0.3'
  }
});

演示http://jsbin.com/AjIMuge/1