【问题标题】:Angular 7 - Browser Refresh always redirecting to homepageAngular 7 - 浏览器刷新总是重定向到主页
【发布时间】:2019-03-21 20:13:00
【问题描述】:

在浏览器刷新后将用户保留在同一页面上的最佳方式是什么。

示例: 用户在www.domain.com/page1。当他刷新浏览器时,路由器重定向到www.domain.com/home,这是默认路由。

我可以通过使用HashLocationStrategy 来实现这一点。但它在网址中添加了额外的#。例如:www.domain.com/#/page1,我想避免。

const routes: Routes = [
  {
    path: "page1",
    component: page1Component
  },
  { 
    path: '',
    redirectTo: 'home', 
    pathMatch: 'full'
  }

];

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

另外,我已经按照https://angular.io/guide/deployment 完成了所需的 apache Web 服务器配置

我知道 Angular 是 SPA,在 root 之后一切都是虚拟的。 但是,如果没有#,有没有更好的方法来实现这一点?

【问题讨论】:

  • 能不能评论一下apache配置试试
  • 我也试过了。但我没有看到任何区别。为什么你认为这会有所不同?你的意思是,404 重写规则到 index.html 创建问题?
  • 在干净的代码中它不会重定向到主页
  • 在本地开发中,它工作正常。仅当我部署到 apache Web 服务器时才会出现此问题。如果你说干净的代码,你指的是什么?
  • 问题出在 99% 的 apache 配置中。它在尝试获取 /page1 时发送 30x 重定向,但它应该只响应 200 index.html

标签: angular routes angular-routing


【解决方案1】:

根据我对您问题的理解,您可以考虑为您拥有的每个功能使用延迟加载功能模块。

更多详情请查看我的stackblitz

当您刷新 stackblitz 页面时,它会停留在同一页面上。

【讨论】:

  • 我有延迟加载的模块。问题仅在服务器中。也只有当我刷新浏览器或使用直接网址时。
  • @KiV 对于您提出的上述问题,您有什么解决方案吗?我也面临同样的问题
  • 链接已损坏。
猜你喜欢
  • 2020-08-26
  • 1970-01-01
  • 2011-11-02
  • 1970-01-01
  • 2019-11-10
  • 2018-12-13
  • 1970-01-01
  • 1970-01-01
  • 2013-09-17
相关资源
最近更新 更多