【问题标题】:Angular - hashlocationstrategy - sharing link on linkedin with hashAngular - hashlocationstrategy - 在linkedin上与散列共享链接
【发布时间】:2021-03-13 17:40:36
【问题描述】:

我正在使用 angular 和 hashlocationstrategy:

我的默认网站链接是https://mywebsite.com/#/

如果我想在 LinkedIn 上分享我网站上的子路由,例如 https://mywebsite.com/#/123 链接显示为https://mywebsite.com/ #/123

我尝试删除 # 但 Angular 使用此策略加载正确的页面 有什么想法可以替换 # 或删除它并继续重定向到 angular 中的同一点?

【问题讨论】:

  • angular 不需要 hashlocationstrategy 如果您正确配置后端并在未找到的路由上提供 index.html。

标签: angular redirect linkedin hashtag


【解决方案1】:

正如 Aakash 所说,您的选择是:

  1. 使用哈希定位策略,让 Angular 处理路由
  2. 不要使用哈希定位策略,而是将您的服务器设置为始终提供 index.html(或者如果找不到任何 x.html,至少退回到提供该服务)

这是因为浏览器/服务器会忽略 # 之后的任何内容。这意味着链接到http://example.com/#/something 将加载example.com 的index.html 页面(或服务器设置为默认的任何内容)。一旦提供了索引,Angular 就会加载,读取路由,而不是忽略 # 之后的所有内容,然后继续处理路由。

如果没有#'s,转到相同的http://example.com/something 将尝试加载something.html,对于角度应用程序不存在因此服务器将404。需要设置服务器以提供基本索引.html 在此类事件中。一旦提供了上述索引,Angular 就会加载、读取路由并继续处理路由。

【讨论】:

  • 谢谢,看来我需要更新我的服务器代码
  • 无论如何我通过在# 之前添加“/”来解决我的问题,类似于example.com/#/something 而不是example.com#/something
  • 啊,是的,我没有在您的问题中看到缺少的斜线。在不改变策略的情况下,这确实是解决办法。 ;)
  • 谢谢,你的回答也很好考虑:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-06
  • 1970-01-01
  • 2016-01-02
  • 1970-01-01
  • 2017-08-23
  • 1970-01-01
  • 2013-01-20
相关资源
最近更新 更多