深入链接javascript驱动的网站

时间:2014-05-10 12:03:54

标签: javascript seo opengraph

我有一个网站,有两个版本,所有人都在唱歌所有跳舞的javascript应用程序,当你请求根网址时提供

/

当您浏览可爱的网站时,内容会更新,网址也会更新,这要归功于html5推送状态或旧版格式正确#!网址。但是,如果您没有启用JavaScript,则仍然可以使用该网站的所有功能,因为每条内容也存在于其自己的网址下。这很好,有三个原因

  • 非JavaScript用户仍然可以使用该网站
  • SEO - 网络抓取工具可以轻松索引网站
  • 一切都可以在社交网络上分享

第三个原因对我来说非常重要,因为每个内容都必须在网站上单独共享。而且由于每条内容都有自己的网址,因此很容易深层链接到该网址,每条内容都可以拥有自己特定的开放图形数据。

然而,我遇到的问题如下。你是一个正常的人,并启用了JavaScript,你正在网站上浏览和图像库,并决定分享你找到的可爱的猫的图片。使用javascript,网址已更新为

/画廊/可爱-CAT

您分享此网址,并且您的朋友点击它。当他们点击链接时,服务器会向您发送该站点的非javascript / web爬虫版本,如果您直接访问该站点的根目录,那么您的体验就不会像javascript版本那样好。在那里航行。

有没有人有一个很好的解决方案/替代设置来解决这个问题?我有几个黑客工作,但我对他们并不满意。它们包括:

  • javascript重定向到每个页面上的网站根目录并存储cookie /添加#!到页面上的URL如此呈现javascript路由器将显示正确的内容。 (谷歌惩罚自动javascript重定向?)
  • 呈现无javascript页面,并添加一些javascript,用户将用户重定向到root用户,类似于上面,只要用户点击链接

我不是特别喜欢这两种解决方案,但却无法想到更好的解决方案。渲染每个页面的整个javascript应用程序对我来说似乎不是一个解决方案,因为当你开始导航时,你最终会看到糟糕的网址,比如/ gallery / lovely-cat / gallery / another-lovely-cat通过网站。

我的解决方案必须支持未实现推送状态的旧浏览器

2 个答案:

答案 0 :(得分:1)

制作网站"非javascript /网络抓取工具版本"与JavaScript版本相同。只需在服务器上构建HTML而不是客户端上的DOM。

  

为每个页面呈现整个javascript应用程序似乎不是我的解决方案,

这是强有力的方法

  

因为你最终会看到糟糕的网址,例如/ gallery / lovely-cat / gallery / another-lovely-cat

仅当您将{和pushState ed)链接到gallery/another-lovely-cat而不是/gallery/another-lovely-cat时。 (注意前面的/

答案 1 :(得分:0)

尝试这个插件可能会解决你的第三个原因,还有两个原因。

http://www.asual.com/jquery/address/