我正在构建一个不会位于网站根目录的 Aurelia 应用程序。它的 URL 类似于http://mycompany.com/neatoApp。
我有一个看起来像这样的路由配置
{route:['','index'], name:'index',moduleId:'index' nave:true, title: 'neato app home'},
{route:['news'], name:'news',moduleId:'news' nave:true, title: 'neato app news'}
我已经配置了 System.js,以便它知道 /neatoApp 是 baseURL 并正确下载所有脚本和内容。我的应用程序 html 的头部有一个<base href="/neatoApp" />
元素,我正在使用 pushState 进行路由。
问题是当我导航到 mycompany.com/neatoApp Aurelia 报告“找不到路由:/neatoApp”
Router 有一个 baseUrl 属性,它似乎与我设置它的值无关,因为路由识别器不使用它。
我真的不想在我的所有路由中都放置neatoApp,原因有几个:随着应用程序部署在不同的地方(开发、测试等),基本路径会发生变化,这使得维护起来很头疼。了解应用程序将在各种环境中部署的位置不是开发人员的责任,也不是运维人员在部署时更新代码以包含该基本 URL 的责任。当我在路由配置中包含neatoApp 时,它会使导航行为奇怪,就像生成指向/neatoApp/neatoApp 的链接一样。
有人有解决这个问题的方法吗?
我创建了一个 plunker 来演示这个问题:http ://plnkr.co/edit/HPEzClAlncvQkSzjw6ph?p=preview