当前位置: 首页 > 知识库问答 >
问题:

Angular 2路由在部署到Http服务器时不起作用

夏侯朝斑
2023-03-14

我将开发一个简单的Angular 2应用程序。我使用Angular CLI创建了一个带有路由的项目,并使用'ng generate component‘命令向应用程序添加了几个组件。然后我在app-routing.module.ts中指定路由,如下所示。

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { HomeComponent } from './home/home.component';
import { AboutComponent } from './about/about.component';
import { UserComponent } from './user/user.component';
import { ErrorComponent } from './error/error.component';
import { SpecialpageComponent } from './specialpage/specialpage.component';

const routes: Routes = [
  {
    path: '',
    component: HomeComponent
  },
  {
    path: 'about',
    component: AboutComponent
  },
    {
    path: 'user',
    component: UserComponent
  },
  {
    path: 'specialpage',
    component: SpecialpageComponent
  },
  {
    path: '**',
    component: ErrorComponent
  }

];

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

app.module.ts如下所示。

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { AppRoutingModule } from './app-routing.module';

import { AppComponent } from './app.component';
import { HomeComponent } from './home/home.component';
import { AboutComponent } from './about/about.component';
import { ErrorComponent } from './error/error.component';
import { UserComponent } from './user/user.component';
import { SpecialpageComponent } from './specialpage/specialpage.component';

@NgModule({
  declarations: [
    AppComponent,
    HomeComponent,
    AboutComponent,
    ErrorComponent,
    UserComponent,
    SpecialpageComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    AppRoutingModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

我没有为其他组件添加任何修改。然后,我使用'ng serve'命令部署了应用程序,应用程序可以很好地处理链接。例如:http://localhost:4200/关于

如有任何帮助,我们将不胜感激。提前道谢。

我已经把我的项目上传到了GitHub。

共有1个答案

汪同
2023-03-14

通过实现HashLocationStrategy来解决这个问题,它将#添加到所有路由。您可以通过向AppModule Providers添加HashLocationStrategy来实现这一点。

    providers: [{provide: LocationStrategy, useClass: HashLocationStrategy}],

并添加相应的导入

   import { HashLocationStrategy, LocationStrategy } from '@angular/common';

这会解决你的问题。

 类似资料:
  • 使用Ionic 2和angular http我试图向https://fcm.googleapis.com/fcm/send发出http post请求,用postman测试的请求工作得非常好 这个问题是我这个问题的后续问题: http请求的代码是 来自chrome控制台的标题如下: 一般标题 请求URL:https://fcm.googleapis.com/fcm/send请求方法:POST状态代码

  • 我已经构建了一个Springboot应用程序,其中包括AngLuar5。我有一个gradle构建脚本,它将angular文件加载到我的springboot项目中,这些文件位于springboot项目的resources/static下。当我启动我的应用程序时,angular的路由不再工作,我得到了 错误:无法匹配任何路由。URL段:“访问” 我的项目结构: 如果我打字 www.mysite.com

  • 问题内容: 我不确定这个问题的正确说法是什么,但是就这样。 我想设置两个Web应用程序。一种基于golang,另一种基于apache / php(wordpress) 这些应用程序将作为单独的Google Cloud Platform API引擎托管。 我希望这些内容可以在同一域下发布,例如,主要的golang应用程序网址为www.mygolangapp.com,而wordpress网址为www.

  • 我想让流量如下所示: 外部客户端https请求(例如。https://my-app-out-side-cluster.com) - 我遵循这篇文章来配置我的入口和外部流量,但是,由于我在集群外的服务是http,所以在使用https发出请求时,我会遇到SSL错误。但是,将请求更改为http是可行的,这是不需要的。 我的问题是,有没有办法 在入口中终止SSL(使用入口控制器) 是否将流量重定向到群集外

  • 您好,我是java开发的新手,我正在尝试修改一个同事开发的应用程序,但是当我试图部署它时,我得到了这个错误: servlet.ServletException:org.apache.ibatis.exceptions.PersistenceException: resource database.properties org.glassfish.jersey.servlet.webcomponen

  • 我们团队决定尝试使用OpenShift Origin server部署服务。我们有一个单独的虚拟机,安装了OpenShift原始服务器,运行良好。我能够部署我们的本地docker映像,这些服务也运行良好——pod已启动并运行,获得了自己的IP,我可以从虚拟机访问服务endpoint。 问题是我无法让它工作,所以服务暴露在机器之外。我读到了路由器,它被认为是公开服务的正确方式,但它只是不起作用,现在