【发布时间】: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