我正在将现有的角度4应用程序从PathLocationStrategy迁移到HashLocationStrategy
,并且需要保持入口点url的正常工作。它看起来像www.test.com/?param1=123
HashLocationStrategy和角度为4的查询参数
问题是,只要我切换到HashLocationStrategy,查询参数不能通过activatedRoute.queryParams访问。 (www.test.com/#/?param1=123
工作正常,但我需要保留原始的URL条目以及)
那么有没有办法从www.test.com/?param1=123
获得param1值与HashLocationStrategy
?我真的不想创建一个空的着陆页,将重定向到www.test.com/#/?param1=123
,除非我无法避免它。
路由更改通常意味着旧的网址将被重定向到新网址,所以是的,总的来说,从服务器端执行此操作是有意义的。不仅可以有像'/?param1 = 123'这样的传统根路径,而且还可以有像'/ foo/bar'这样的其他路径,对吧?使用HashLocationStrategy通常意味着该应用程序不是SPA。是吗?像'/?param1 = 123#/?param1 = 456'这样的URL在理论上可以存在,所以它取决于这应该如何处理。 – estus
我只关心入口网址,其余的网址并不重要,可以更改。移动HashLocationStrategy的原因是我们已经获得了S3存储桶提供的SPA,并且为Angular创建的Url添加服务器端支持变得棘手。服务器端重定向不适用于url中的# – Leo
它运行良好。从服务器端读#有问题,但没有设置它的问题。在Angular中可以做到这一点,但我认为从服务器端来说它更加干净。当currentUrl不是'/'时,你可以将Location头部设置为''/#'+ currentUrl',它将覆盖所有的SPA URL。 – estus