我正在开发一本在线音乐杂志。我们有一个html5 5/flash音乐播放器,这构成了网站的主要部分。但是这个网站也有很多文章和东西。因此,基本上,我想要跨页面加载的无缝音乐播放,但我也希望避免一个完整的javascript应用程序,因为我希望所有内容在Google中都是友好的和可索引的。
我将html5历史api与hashbang (#!)结合使用。用于在单击的主页中加载各种内容的回退。加载的URL也指向包含内容的页面。
例如: munimkazia.com索引页面中的munimkazia.com/page1.html链接将加载page1.html中的内容并插入它。网址将更改为火狐和IE中的munimkazia.com/#!/page1.html,而chrome中的munimkazia.com/page1.html。因为href链接是munimkazia.com/page1.html,所以蜘蛛将跟随链接并获取内容。我已将页面正确地设置在page1.html,可供查看。但现在我有麻烦了。
如果我决定在此页面使用ajax加载,浏览器地址栏上出现的URL将与hashbang回退(http://munimkazia.com/page1.html/#!/page2.html)不一致,如果我决定将所有单击都重定向到http://munimkazia.com上的主容器页并加载page2.html,那么在此之后一切都将正常工作,但是此页面加载将中断音乐播放,如果有的话。
另外,我不想将所有http://munimkazia.com/page1.html重写为http://munimkazia.com/#!/page1.html,因为我希望所有内容都在其中,而不是由javascript获取和编写,供搜索引擎蜘蛛阅读。我知道Google有一个规范来阅读#的内容!URL,但即使禁用了JS,我也希望页面中包含文章内容。
有什么想法/建议/解决办法吗?
编辑:这些URL只是解释我观点的例子。在munimkazia.com中没有提取页面的javascript代码
发布于 2011-02-16 00:57:15
哈-砰#!URL的可以被Google索引,这就是它们的全部意义,否则人们只会自己使用散列#。
我认为这个想法是谷歌看到的#!URL并将其转换为querystring参数,例如。example.com/#!/products/123/ipod-nano-32gb
变成了example.com/?_escaped_fragment_=/products/123/ipod-nano-32gb
,但是用户仍然使用散列表URL。编写服务器程序以响应?_escaped_fragment_参数,但是JavaScript用户被重定向到正确的#!URL。
查看这里的Google规范,http://code.google.com/web/ajaxcrawling/docs/getting-started.html
我不认为使用这两种类型的URL是个好主意,因为有两个URL被同一页面的用户在博客、Twitter等上发布,编写代码来可靠地处理它也是一场噩梦。在HTML5历史API得到更广泛的支持之前,您可能不得不暂时接受散列表。
https://stackoverflow.com/questions/5013811
复制相似问题