gpt4 book ai didi

部署在子目录中时,Angular 6 路由路径不适用于直接 URL

转载 作者:太空狗 更新时间:2023-10-29 17:24:34 25 4
gpt4 key购买 nike

app.routing.module.ts

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { HomeComponent } from './public/home/home.component';

const routes: Routes = [
{
path: 'customers',
loadChildren: '../app/customers/customers.module#CustomersModule'
},
{
path: 'admin',
loadChildren: '../app/admin/admin.module#AdminModule'
},
{
path: 'home',
component: HomeComponent
},
{
path: '**',
redirectTo: 'home',
}
];

@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }

这些在开发环境下运行良好。如果我直接打开 localhost:4200/home 然后它会登陆预期的页面。

但是,使用 ng build --prod --base-href=/myngapp/构建部署 只工作在 www.domain.com/myngapp 上,如果我直接打开 www.domain.com/myngapp/home,则会出现 404 not found 错误。

最佳答案

您需要设置适当的 URL 重写规则。 Angular 文档解释了如何为大多数流行的 http 服务器执行此操作。您可以在此处找到详细信息。

https://angular.io/guide/deployment#server-configuration

它的作用,简单来说,就是告诉服务器无论请求的路径是什么,都始终提供 index.html。例如。

www.domain.com/myngapp/home -> 提供 index.html,而不是 home.html 或类似的东西www.domain.com/myngapp/some/child/routing ->服务于 index.html 并且不要尝试查找 some/child/routing.html 或 php 等。

关于部署在子目录中时,Angular 6 路由路径不适用于直接 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51172138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com