繁体   English   中英

生产中的角度重定向网址

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM