【发布时间】:2015-11-19 03:56:04
【问题描述】:
我正在尝试使单页应用程序可抓取,并且已成功按需创建 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() 函数,它进去了,无论函数返回什么,我都看不到变化。
【问题讨论】:
-
首先答案是 - 没有好的方法,对 durandal 来说是一个巨大的缺点。但我所做的是创建一个站点地图,它包含每个 url,其中包含哈希,这为网络爬虫(或至少谷歌)提供了知道每个哈希实际上是不同页面的信息
-
你有没有得到任何结果,或者你只是希望它工作? :)
-
它有效,现在刚刚检查以确认,现在我们有 130 个实时活跃成员,并且在图表下方列出了所有不同哈希值的唯一 url。请注意,我认为这可能仅适用于 Google
-
很高兴听到! :) 感谢您的检查。听起来很容易......只是希望谷歌不会改变事情,所以你(和我)会失去排名。
标签: seo single-page-application durandal google-search