Angular在生产环境中的重定向url



在生产环境中使用应用程序时遇到了一个问题。路由不能产生404错误我需要在我的项目中做什么改变才能在这种环境中工作?

本地地址:http://localhost:4200/test

生产:http://my-app/test

import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { TestComponent } from './tests/test.component';
import { SideNavComponent } from './side-nav/side-nav.component';
const routes: Routes = [
{ path: 'test', component: TestComponent },
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule],
})
export class AppRoutingModule {}

Http:

<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<base href="/" />
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, user-scalable=0, minimal-ui"
/>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<!-- Favicon icon -->
<link rel="icon" type="image/x-icon" href="favicon.ico" />
<link
href="https://fonts.googleapis.com/css?family=Roboto:300,400,500&display=swap"
rel="stylesheet"
/>
<link
href="https://fonts.googleapis.com/icon?family=Material+Icons"
rel="stylesheet"
/>
</head>
<body class="mat-typography">
<app-root></app-root>
</body>
</html>

我认为你必须使用HashLocationStrategy路由。看看这个:https://angular.io/api/common/HashLocationStrategy

有配置选项的路由呈现为布尔标志。选项名称为"useHash"。默认情况下它是false,你需要把它设置为true来加载你的路由。app-routing.module.ts

变更
RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules, useHash:true })

现在,如果你仍然希望你的路由没有哈希,那么你需要修改你的服务器设置。下面是要在apache2上完成的设置。点击以下链接。

https://ngmilk.rocks/2015/03/09/angularjs-html5-mode-or-pretty-urls-on-apache-using-htaccess/

相关内容

  • 没有找到相关文章