Angular 4 Routes/RouterModule 影响域后的路径

Angular 4 Routes/RouterModule affecting path after domain

我的 Angular 应用程序托管在我无法控制的服务器上,我只能通过导航到此 link.

来访问
externalServer.com/myAppName

每当我导航到这个 link 时,我应该在 myAppName 之后看到 /#/home,但我看到的却是这个。

externalServer.com/#/home

问题是 myAppName 正在从路径中删除。我想看的URL是这个

externalServer.com/myAppName/#/home

我的问题是这样的。 Angular RouterModule 或 Routes 组件是否可能导致路径上的 myAppName 部分被截断的问题?或者问题与 Angular 无关?

我对Angular不够熟悉,不知道这是路线问题还是完全不同的问题,所以我只是想弄清楚我的精力在哪里。我假设如果这是可以用 Angular 修复的东西,那么可能需要在 app.module.ts 文件中进行更改,所以我将在下面 post。感谢您的帮助。

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { HttpClientModule } from '@angular/common/http';
import { RouterModule, Routes } from '@angular/router';
import { AppComponent } from './app.component';
import { DesktopUiComponent } from './desktop-ui/desktop-ui.component';
import { MobileUiComponent } from './mobile-ui/mobile-ui.component';
import { RouterComponent } from './router/router.component';


const appRoutes: Routes = [
  { path: 'home', component: RouterComponent },
  { path: '', redirectTo: '/home', pathMatch: 'full' }
];

@NgModule({
  declarations: [
    AppComponent,
    DesktopUiComponent,
    MobileUiComponent,
    RouterComponent
  ],
  imports: [
    BrowserModule,
    HttpClientModule,
    RouterModule.forRoot(appRoutes, { useHash: true })
  ],
  exports: [
    RouterModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

我找到了另一个 post 回答了我的问题。 link 如下。

此外,下面是我更新的 app.module.ts 文件,其中包含允许应用 运行 具有任何起始路径的更改。

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { HttpClientModule } from '@angular/common/http';
import { RouterModule, Routes } from '@angular/router';
import { AppComponent } from './app.component';
import { DesktopUiComponent } from './desktop-ui/desktop-ui.component';
import { MobileUiComponent } from './mobile-ui/mobile-ui.component';
import { RouterComponent } from './router/router.component';


const appRoutes: Routes = [
  { path: '', component: RouterComponent }
];

export function getBaseLocation() {
    let paths: string[] = location.pathname.split('/').splice(1, 1);
    let basePath: string = (paths && paths[0]) || '';
    return '/' + basePath;
}

@NgModule({
  declarations: [
    AppComponent,
    DesktopUiComponent,
    MobileUiComponent,
    RouterComponent
  ],
  imports: [
    BrowserModule,
    HttpClientModule,
    RouterModule.forRoot(appRoutes)
  ],
  exports: [
    RouterModule
  ],
  providers: [{ provide: APP_BASE_HREF, useFactory: getBaseLocation }],
  bootstrap: [AppComponent]
})
export class AppModule { }