我在 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: {...}
});
当我的应用程序从 url "localhost:3000/" 或 "localhost:3000/applications" 加载时,所有这些路径都会正确解析。但是当它从“localhost:3000/applications/app1”之类的东西加载时,路径解析不正确。
路径分别如下所示。
正确的:
“/models/test-model.js”
不正确:
“/applications/models/test-model.js”
我正在使用 CJS 加载我的模块,如下所示:
define( function( require ) {
var TestModel = require('models/test-model.js');
});
当我将上面的内容更改为此 -->var TestModel = require('/models/test-model.js');
时,它可以工作。但这违背了使用相对路径的目的。
如果有人可以帮助我,我会很高兴。我超级困惑。