带参数的Angular 2默认路由

时间:2016-07-01 15:31:42

标签: angularjs typescript angular angular2-routing

以下是我定义的路线:

import {RouteDefinition} from '@angular/router-deprecated';
import {HomeComponent} from './home/home.component';
import {TodolistComponent} from './todolist/todolist.component';
import {RegistrationComponent} from './registration/registration.component';


export var APP_ROUTES: RouteDefinition[] = [
    { path: '/home', name: 'Home', component: HomeComponent },
    { path: '/registration', name: 'Registration', component: RegistrationComponent },
    { path: '/todolist', name: 'Todolist', component: TodolistComponent },
    { path: '/mac/:id', name: 'Mac', component: HomeComponent, useAsDefault: true}
];

现在我想直接调用route mac /:id以便从设备获取mac号码。

在localhost上运行正常,但在我尝试运行时在服务器上运行:

http://register.ampio.com.pl/mac/123

它不显示错误或我的应用程序,只显示404.

如何将参数传递给我的默认路线?

编辑:我选择哪条路线并不重要。 I.E.注册不起作用,即使在本地主机上一切正常。我在两台不同的服务器上试过它。

1 个答案:

答案 0 :(得分:0)

如果您尝试访问@matrix= [ [ { score => 0, pointer => 'none' } ] ] ; ,那么您的服务器会尝试将myserver.org/mac/12文件放在index.html文件夹中。文件和文件夹都不存在

在您的localhost中,您可能正在使用专门为单页应用程序构建的/mac/12,即正确处理路由。 例如,对于lite-server lite-server将重定向到/mac/:id,然后给Angular路径以路由它属性

您已配置服务器以处理路由。基本上,您需要捕获发送到服务器的任何内容并将其重定向到index.html并将路径信息传递给index.html。每个服务器都有自己的配置语法

对于nginx,您可能需要添加类似

的内容
index.html