我在网上发现了这个问题,但还没有答案,所以也许这里有人解决了......?
我构建了一个严重依赖jquery.address的页面。它有一个索引页面,其余的按照Google的/#!/
可抓取页面方案通过Ajax动态加载。现在我想添加Facebook喜欢或分享按钮,但我不能让它获取实际页面标题或网址。
无论我做什么,它总是会回到索引页面的标题和网址。它试过了:
?_escaped_fragmet_=xyx
),但在meta中指定#!
页面我从来没有得到任何东西,除了链接到索引页面或空白的“分享”到右侧URL,标题和缩略图被忽略。
有没有人有类似的设置工作?
感谢任何提示, 托马斯
答案 0 :(得分:3)
Facebook现在实际上正在使用#!
并且它有效!如果您构建自己的网站,使http://site.de/?_escaped_fragment=something与http://site.de/#!/something相同,那么您只需“共享”#!
网址,它就会显示转义的片段页面中的信息。<登记/>
使用此网址检查:http://developers.facebook.com/tools/debug
但是:可以在这里找到一个更清晰的问题解决方案:http://github.com/browserstate/history.js/wiki/Intelligent-State-Handling
答案 1 :(得分:2)
我的猜测是,Facebook的抓取工具不会运行Javascript,并且会始终显示从服务器获取的页面中的实际内容。
答案 2 :(得分:2)
Facebook共享有一个BRUTAL缓存,上次我检查一旦它被删除就无法更改标题/描述数据:(
答案 3 :(得分:0)
我遇到的问题是og:url和页面的实际网址不匹配。我还阅读了一些有关og数据的评论,这些评论仅在title元素之后,但我认为这并没有解决任何问题。
关于缓存问题,Facebook的缓存确实是“残酷的”,但它不会为lint工具缓存任何内容:http://developers.facebook.com/tools/debug。
我在共享链接时使用no-hash-bang网址。我处理硬链接并使用javascript将它们重定向到哈希爆炸客户端。这样,如果爬虫进入硬链接页面,它将显示信息,就像启用了javascript一样。
比较
和
希望这有帮助。