Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何对不同的路径js文件仅使用一个RequireJS配置文件?_Javascript_Requirejs_Amd - Fatal编程技术网

Javascript 如何对不同的路径js文件仅使用一个RequireJS配置文件?

Javascript 如何对不同的路径js文件仅使用一个RequireJS配置文件?,javascript,requirejs,amd,Javascript,Requirejs,Amd,我正在将RequireJS集成到我的项目中。我的项目结构如下: $ tree . |-- common.js |-- lib | |-- jquery.min.js | `-- require.js `-- view |-- a | |-- a.html | |-- a.js | `-- b | |-- b.html | `-- b.js |-- c.html `-- c.js r

我正在将RequireJS集成到我的项目中。我的项目结构如下:

$ tree
.
|-- common.js
|-- lib
|   |-- jquery.min.js
|   `-- require.js
`-- view
    |-- a
    |   |-- a.html
    |   |-- a.js
    |   `-- b
    |       |-- b.html
    |       `-- b.js
    |-- c.html   
    `-- c.js
requirejs.config({
    baseUrl: '../lib',
    paths: {
        'jquery': 'jquery.min'
    }
});
common.js是我的RequireJS配置文件,内容如下:

$ tree
.
|-- common.js
|-- lib
|   |-- jquery.min.js
|   `-- require.js
`-- view
    |-- a
    |   |-- a.html
    |   |-- a.js
    |   `-- b
    |       |-- b.html
    |       `-- b.js
    |-- c.html   
    `-- c.js
requirejs.config({
    baseUrl: '../lib',
    paths: {
        'jquery': 'jquery.min'
    }
});
/view中有不同路径的js文件

c.js运行良好,如下所示:

requirejs(['../common'], function (common) {
    requirejs(['jquery'], function($){
    .......
    });
});

但是如何在a.jsb.js中插入'jquery',并且仍然使用common.js

别忘了更改common.js的路径。应该是:

requirejs(['../../common'], function (common) { ... });
来自a.js和

requirejs(['../../../common'], function (common) { ... });
从b.js开始,因为路径是相对于当前文件的

或者,使用绝对路径。这样,无论您从哪个文件
requirejs
ing,路径都是相同的。例如,如果
common.js
位于,则使用


。(前导的
/
使其成为绝对路径。)

您是否忘记将路径更改为
common.js
?它当然应该是
requirejs(['../../common'],function(common){…})来自
a.js
requirejs(['../../../common'],函数(common){…})
来自
b.js
,因为路径是相对于当前文件的。我更改了,但是jquery路径也必须更改,我不想更改它,我想对a.js、b.js和c.js使用“jquery”。就像AngularJS注入一样。不,不需要更改jquery的路径。它通过查看
common.js
找到jquery路径。但是查找
common.js
本身的方式有所不同:您将其作为相对于正在搜索它的文件的路径(
'../common'
来自
c.js
)。或者,您可以使用绝对路径:
“/common”
。假设
common.js
位于URL目录树的根目录,例如
http://example.com/common.js
而非
http://example.com/scripts/common.js
,在这种情况下,您可以使用
/scripts/common.js
。感谢您的提醒,我已将相对路径更改为绝对路径。这是否解决了问题?