我有一个使用ui-router的Angular 1.5.9内置的门户。现在,当用户点击某些内容并且路线发生变化时,元标记应该会发生变化。或者当用户共享指向Facebook的链接时,它的元信息应该显示出来。
例如,当用户访问/ home时,将显示默认元标记。
当路由更改为/ detail时,来自API服务的信息将填充元标记。因此,当url在其他站点上共享时 - 元标记应该来自服务。
注意:网址中有一个哈希值。
我尝试了什么
- 使用prerender.io - 没有工作,因为它是付费的,并不完全适合我的问题。
- 尝试将facebook bot重定向到一个名为meta.php的文件,该文件将获取元标记,但我需要知道facebook机器人试图访问的URL,基于此我将API信息加载到标签中。
此时的问题(第2号)是我无法获得Facebook机器人正在访问的完整URL。在URL中的散列(#)之后,服务器(nginx)无法识别我尝试获取的完整URL作为参数。因此,如果用户共享url website.com/#/page/details/23,我只会访问website.com/#,因此它会加载默认的元标记,而不是特定的元标记。
- 创建了一个服务" metaService"获得meta Atags但是它们不会出现在Facebook调试器中,因为它会在之后加载。在状态内调用onEnter中的metaService但不起作用。
醇>
我已经知道的
- 我使用的是非常旧版本的Angular,因为项目已经过时,无法升级。
- 角度优选用于SPA,这不是SPA。