Angular2参数URL直接访问时不起作用

时间:2016-07-06 11:47:57

标签: typescript angular angular2-routing

我已经使用参数配置了Angular2路由。当我从我定义的/censo/119之一访问/viaje/119[routerLink]时,它工作正常。但是当我直接进入网址http://localhost:3000/censo/119时,我得到了一个404。

我正在使用lite-server作为我的开发应用。

我错过了配置吗?我需要使用其他服务器吗?

这是我的app.routes.ts

const routes: RouterConfig = [
  { path: '', component: CensoComponent },
  { path: 'censo', component: CensoComponent },
  { path: 'viajes', component: ViajesComponent },
  { path: 'censo/:viaje', component: CensoDetailComponent },
  { path: 'viajes/:viaje', component: ViajesDetailComponent },
];

这是我的routerLinks

<a [routerLink]="['/censo']">Censo</a>
<a [routerLink]="['/viajes']">Viajes</a>
<a [routerLink]="['/censo',119]">Censo 119</a>
<a [routerLink]="['/viajes',119]">Viaje 119</a>
<router-outlet></router-outlet>

修改

我添加了一个bs-config.json,但我的行为却相同。

{
    "port": 8000,
    "files": ["./**/*.{html,htm,css,js}"],
    "server": { "baseDir": "." }
}

这是我在浏览器中获得的。 May it has something to do with systemjs?

这是我的项目结构,以防万一。

./

./app

由于

1 个答案:

答案 0 :(得分:0)

您应该从与lite-server相同的位置运行index.html命令。默认行为提供当前文件夹中的内容,打开浏览器,并将HTML5后备应用于index.html

如果由于某种原因无法执行该文件夹中的命令而index.html位于src地图中,该地图是您执行lite-server的文件夹的子项,则应添加一个bs-config.json文件,其serverbaseUrl属性如下:

{
  "server": { "baseDir": "./src" }
}

按照配置的文件名和位置运行这样的lite-server:

lite-server -c ./bs-config.json