要解决Angular 7的Web服务器路由不起作用的问题,可以尝试以下解决方法:
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { HomeComponent } from './home/home.component';
import { AboutComponent } from './about/about.component';
const routes: Routes = [
{ path: '', component: HomeComponent },
{ path: 'about', component: AboutComponent }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
标签。在你的根组件的模板文件中(通常是app.component.html),确保你已经正确地使用了
标签,这是Angular用来渲染路由组件的地方。
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppRoutingModule } from './app-routing.module'; // 引入路由模块
import { AppComponent } from './app.component';
import { HomeComponent } from './home/home.component';
import { AboutComponent } from './about/about.component';
@NgModule({
declarations: [
AppComponent,
HomeComponent,
AboutComponent
],
imports: [
BrowserModule,
AppRoutingModule // 在imports数组中引入路由模块
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
ng serve
命令),Angular会自动配置好Web服务器,并处理路由请求。但是如果你使用的是自定义的Web服务器,你需要确保你已经正确配置了路由请求的重定向。以下是一个示例的Node.js Express服务器的代码:const express = require('express');
const path = require('path');
const app = express();
// 静态文件夹
app.use(express.static(__dirname + '/dist'));
// 路由重定向
app.get('/*', function(req, res) {
res.sendFile(path.join(__dirname + '/dist/index.html'));
});
// 启动服务器
app.listen(process.env.PORT || 8080);
这些解决方法应该能够解决Angular 7的Web服务器路由不起作用的问题。记得重启你的开发服务器或者重新构建你的应用程序以使更改生效。