所以这就是我的app-routing.module.ts看起来像
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { AppComponent } from './app.component';
import { IndexComponent } from './index.component';
import { ErrorComponent } from './error.component';
const routes = [
{ path: 'hira', redirectTo: 'search', pathMatch: 'full' },
{ path: 'search', component: AppComponent, pathMatch: 'full' },
{ path: 'main', component: AppComponent },
{ path: 'error', component: ErrorComponent },
{ path: '**', redirectTo: 'error'}
];
@NgModule({
imports: [ RouterModule.forRoot(routes) ],
exports: [ RouterModule ]
})
export class AppRoutingModule {}
当我进入网站时,例如www.website.com/hira
它会重定向到www.website.com/hira/search
。但是,如果我然后直接使用该链接(刷新它),它将无法工作并给我404。
所以我想知道我是否需要生孩子或其他东西。
此外,我现在在hira文件夹中有<base href="./">
。我之所以拥有path: 'hira'
,是因为它没有它就无法工作,所以我也想知道是否有办法让它相对于子文件夹hira。
解决: 使用了hashhistory而不是。可以使用browserhistory但需要htaccess
答案 0 :(得分:2)
使用hashbangs。但是,我不推荐它们。
@NgModule({
imports: [ RouterModule.forRoot(routes), {useHash: true} ],
exports: [ RouterModule ]
})
根据网络服务器的不同,将其配置为将包括404,401在内的所有请求重定向到同一个index.html页面。
Angular处理来自那里的所有请求,并且能够重定向到不同的路径。
以下是来自核心Angular团队成员的response类似问题。