将问题路由到子路由,Angular2和Express,尝试提供子目录

时间:2017-02-03 15:19:57

标签: angular express angular2-routing

我有Express提供本地Angular2应用程序。要从express表示各种node_modules到Angular2应用程序,我有类似下面的设置

config.dependencies = [
{
  staticPath: './node_modules/@angular/',
  mntPath: '/angular'
},
...
config.dependencies.forEach((dependency) => {
  app.use(dependency.mntPath, express.static(path.resolve(dependency.staticPath)));
})

在Angular2应用程序的index.html中我有

<script src="angular/shim.min.js"></script>
<script src="angular/zone.js"></script>
<script src="angular/Reflect.js"></script>
<script src="angular/system.src.js"></script>
<script src="systemjs.config.js"></script>
<base href="/">

这一直很有效。我可以路由到任何页面(例如localhost / settings)。当我尝试使用子路由或参数时出现问题,例如settings /:id。我设置了路线,从内部*应用程序可以导航到设置/ 5,但如果我重新加载页面所有地狱都会松动。

问题的症结在于重新加载浏览器试图从localhost / settings / angular / zone.js的相对路径中获取shim.js,zone.js等...而不是localhost / angular /。如何强制应用程序尝试从正确的位置获取资源?

1 个答案:

答案 0 :(得分:0)

哈,没关系!只需要将基础href声明移到systemjs import之上,它就是所有的肉汁。非常感谢来自https://stackoverflow.com/a/35854918/3935218的营销商回答,其中突出了解决方案