我正在尝试使单页应用程序可抓取,并已成功按需创建 HTML 快照,但我很难理解“#”片段是否被视为“漂亮的 URL”,或者它是否只是“#! “?
我读过 http://durandaljs.com/documentation/Making-Durandal-Apps-SEO-Crawlable.html和 https://developers.google.com/webmasters/ajax-crawling/docs/specification
在我看来只有“#!”是一个漂亮的 URL,但 Durandal 不支持它。不过它支持 pushState。根据最后一个链接,如果页面已经在使用漂亮的 URL,则不不应包括在内:
<meta name="fragment" content="!">
一个效果是页面“www.domain.com?_escaped_fragment_=#”的索引版本将是“www.domain.com#”,当然我们希望没有 hashbang 的 URL 被索引。
总结一下 - 我将使用 # 片段,而不是 #!,我是否应该包含元片段 - 我们的内部链接也将有 # 片段,而不是 #!,Google 会跟踪它们吗?
感谢输入!
站点注释 根据第一个链接,您实际上可以将片段更改为“#!”而不仅仅是“#”,但我无法让它工作。我尝试重载 convertRouteToHash() 函数,它进入了,但无论函数返回什么,我都看不到任何变化。
最佳答案
现在的 URL 片段已经过时:https://developers.google.com/webmasters/ajax-crawling/docs/specification
我现在改用 pushState 并且所有页面都已编入索引。
关于seo - 使 Durandal SPA 网站 SEO 友好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32204109/