我在使用requirejs和相对路径时遇到了一些麻烦。
这是在我的HTML文件中:
<script data-main="/app/main.js" src="//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.1/require.js"></script>
我的配置设置如下:
requirejs.config({
baseUrl: '/vendor',
paths: {
// APP FILES
'app-base' : '../app',
'app-config' : '../config',
models : '../models', // where the models and collections are
templates : '../templates',
views : '../views',
lib : '../lib',
tasks : '../tasks',
router : '../app/router',
// VENDOR FILES
marionette : 'backbone.marionette',
},
deps: ['router'],
shim: {...}
});
当我的应用从网址“localhost:3000 /”或“localhost:3000 / applications”加载时,所有这些路径都能正确解析。但是当它从“localhost:3000 / applications / app1”加载时,路径解析不正确。
路径分别如下所示。
正确:
“/模型/测试model.js”
不正确:
“/应用/模型/测试model.js”
我正在使用CJS加载我的模块,如下所示:
define( function( require ) {
var TestModel = require('models/test-model.js');
});
当我将上述内容更改为此时 - > var TestModel = require('/models/test-model.js');
,它有效。但这违背了使用相对路径的目的。
如果有人可以帮助我,我会很高兴。我非常困惑。
答案 0 :(得分:2)
当需要模块时,除非指定完整路径,否则请务必取消.js扩展名。