[英]Angular redirect url in production
当我在生产环境中使用我的应用程序时遇到问题。 路由不起作用,产生 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 {}
网址:
<!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/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.