这里是我的路由器配置:路由器无法在DurandalJS找到页
router.useConvention();
router.mapRoute('error', 'viewmodels/error', "Error");
router.mapNav('home');
router.mapRoute('api', 'viewmodels/api', 'API Reference');
router.mapRoute('set/:id', 'viewmodels/set', 'Set');
router.mapRoute('folder/:id', 'viewmodels/folder', 'Folder');
router.handleInvalidRoute = function (route, params) {
//debugger;
router.navigateTo('#/error');
};
logger.log('app has loaded :)', null, null, false);
return router.activate('home');
我能找到/ API和其他网页,但是当我在一个无效的路由类型,铬控制台给我以下内容:
我有error.js的error.html和就像其他页面。它在App/viewmodels/error.js中,但我不必指定具有任何其他视图/ vms的文件夹...为什么没有找到它?
编辑 每约瑟夫的建议,我的“错误”激活,我得到这个:
我很困惑...为什么它寻找error.js时,它已经找到它在正确的位置,为什么它认为它会在该位置找到一个html文档?
我有一个传统的文件结构:
您发布的代码适用于Durandal入门套件中的新项目。有没有其他地方的路由器被操纵? –
只是为了确保我搜索了我的整个解决方案,并且我没有对路由器进行任何其他调用......我不知道是什么原因造成的:/ – RobVious
有很强的线索表明路由看起来很好(你不是得到“找不到路由”错误),但解决的路径不正确。根据我的经验,这通常是配置错误的路由器或require.config。你可能想尝试调用'router.activate('error');'而不是home,只是为了收集发生的事情的数据点。如果它在那里炸弹,你可以通过router.js代码来查看差异在哪里发生。 –