通过file:///

时间:2019-03-22 04:14:20

标签: angular angular2-routing single-page-application

我已经阅读了一些有关SPA和客户端路由的教程。但是我没有完全理解它。如何设置路由器使其在没有Web服务器的情况下工作。

示例: 文件:/// C:/cxr/CXR-WebViews/dist/CXR-WebViews/index.html#/products/vat

浏览器将其作为index.html接受,但是我应该使用路由器片段来调用组件吗?

我无法在路由器中使用参数useHash:true,因为生成的URL:“ ... / index.html /#/ products / vat”将找不到该文件。仅当它是可将请求重定向到index.html的网络服务器调用时,此方法才有效。

app-routing.module.ts

import { NgModule }             from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { ProductGroupsComponent } from './products/product-groups/product-groups.component';
import { VatComponent } from './products/vat/vat.component';
import { ProductComponent } from './products/product/product.component';
import { AppComponent } from './app.component';

const routes: Routes = [
  { path: '', component: AppComponent, pathMatch: 'full' },
  { path: 'products', component: AppComponent, children:[
    { path: 'productGroups', component: ProductGroupsComponent },
    { path: 'vat', component: VatComponent},
    { path: ':id', component: ProductComponent }
  ]}
];

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

我做错了一定是愚蠢的。我只是找不到它。我使用的是ng build --prod --base-href ./

1 个答案:

答案 0 :(得分:0)

我只需要删除index.html中的meta标签base-href,然后就可以了