Angular 7:localhost路由工作,部署后路由更新=>未找到

问题描述 投票:0回答:2

localhost上的路由工作,我也可以从路由访问www.myhost.com/route1也可以访问localhost www.myhost.com => www.myhost.com/route1在我的家庭服务器上工作(我有公共IP) )www.myhost.com/route1不起作用=>给我找不到

我用ng build构建--prod --watch我尝试PathLocationStrategy我尝试APP_BASE_HREF我尝试了LocationStrategy

base设置为“/”

我尝试使用哈希并且它有效,但真的很难看。

const appRoutes: Routes = [
  {path: '', pathMatch: 'full', component: MatchListComponent},
  {path: 'match/:id', component: MatchDetailComponent},
  {path: 'team/:id', component: TeamDetailComponent}
];

@NgModule({
  declarations: [
    AppComponent,
    MatchListComponent,
    MatchDetailComponent,
    TeamDetailComponent
  ],
  imports: [
    BrowserModule,
    HttpClientModule,
    NgbModule,
    RouterModule.forRoot(appRoutes, {scrollPositionRestoration : 'enabled'})
  ],
  providers: [{provide: PathLocationStrategy}],
  bootstrap: [AppComponent]
})
export class AppModule { }

我为角2或4尝试了一些解决方案,但它们不起作用。我的Web服务器是Apache2

angular deployment angular7 angular-router
2个回答
0
投票

我们可以通过使用哈希策略来克服这个问题

希望能帮助到你。

 RouterModule.forRoot(routes, {
          useHash: true
        })
      ],

0
投票

如果您使用Spring(或其他一些端点技术),可以使用的另一个选项是定义一个控制器,将您的angular应用程序中的所有路由重定向到index.html文件。例:

@Controller
@RequestMapping({
  "/login",
  "/clients",
  "/admin/users",
  "/admin/programs",
  "/reports",
  "/404"
})
class AppController {
  @GetMapping
  String admin() {
    return "../static/index";
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.