【问题标题】:When reload page , page not load after remove # from url in Angular 6.重新加载页面时,从 Angular 6 中的 url 中删除 # 后页面未加载。
【发布时间】:2019-01-28 18:15:51
【问题描述】:

在我的 Angular 6 应用程序中,我在 url 中得到了 #

之前

 RouterModule.forRoot(Approutes, { useHash: true }),

我有这样的更新。(删除第二个参数)

 RouterModule.forRoot(Approutes),

然后我也更新了provider

 {
    provide: LocationStrategy,
    useClass: PathLocationStrategy
 },

第一次很好用,但是当我重新加载页面时,它不起作用。

【问题讨论】:

  • 使用HashLocationStrategy 而不是PathLocationStrategy

标签: angular hash routing reload


【解决方案1】:

当您使用 PathLocationStrategy 而不是 HashLocationStrategy 时,您必须配置您的 Web 服务器,以便将请求路由到您的 Angular 应用程序的索引页。否则浏览器找不到路径(因为该路径在webserver的Filesystem中不存在……)

【讨论】:

    【解决方案2】:

    PathLocationStrategy 需要在服务器端对 @RouteConfig 中配置的所有路径进行配置,以将其重定向到 Angular 应用程序的主 HTML 页面。

    如果你想实现 PathLocationStrategy 方法,你可以这样做

    Angular Universal: server-side rendering

    【讨论】:

      【解决方案3】:

      现在我用的是同样的东西

      RouterModule.forRoot(Approutes, { useHash: true }),
      

      也与任何问题相同。它解决了我的问题。我不知道如何,但它解决了。当我得到正确的解决方法时,我将编辑我的答案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-15
        • 2023-04-11
        • 2018-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-16
        相关资源
        最近更新 更多