Angular 6 build,刷新页面时未找到错误 404

标签 angular angular-routing

我遇到了一个问题 404 页面未找到 在刷新页面时在生产构建中。
使用 # 构建工作正常路由RouterModule.forRoot(routes, { useHash: true }) .但我想要一条没有 # 的漂亮路线

我的模块看起来像

  @NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    HttpClientModule,
    CoreModule,
    AppRoutingModule,
    AuthModule
  ],
  providers: [
    {
      provide: HTTP_INTERCEPTORS,
      useClass: HttpInterceptorService,
      multi: true
    }
  ],
  bootstrap: [AppComponent]
})

最佳答案

原因 404 未找到 在页面刷新时显示的是所有 Angular 路由都应该通过 index.html 文件提供。

您可以通过添加具有以下内容的 .htaccess 文件(在 index.html 所在的同一目录中)来解决此问题。

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . index.html [L]
</IfModule>

请点击以下链接了解有关 的更多详细信息将生产构建部署到 Apache :

https://github.com/mgechev/angular-seed/wiki/Deploying-prod-build-to-Apache-2

关于Angular 6 build,刷新页面时未找到错误 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51707010/

相关文章:

angular - Nativescript 后退按钮没有重定向到正确的页面

javascript - Firebase 在加载 View 之前未接收数据 - 在填充之前返回空数组

Angular 7 - 对象的 Observables 数组的 Observable 数组

angularjs - 关于使用 angularjs 或 vuejs 进行客户端路由的 SEO 方面

Angular 4 : passing breadcrumb view components through the router's `data` property

javascript - 从文件引用时,ng-view 内的脚本不起作用(JQuery 在 Angular 之前加载)

angular - Jenkins 运行 Cypress 测试以超时结束

typescript - Angular 2 typescript Unicode(阿拉伯语)文本支持

angular - 无法匹配任何路由 : base href suffix

angularjs - 如何在 Bower 中获取包的版本?