使用不同主页在单页应用程序中进行路由

时间:2015-11-30 07:33:33

标签: javascript html5 routing pushstate hashchange

我有一个单页应用程序 - 这意味着服务器上的所有内容都会被重定向到单个index.html文件,该文件使用HTML5历史记录api()完成繁重的工作和路由。

现在,我想在旁边添加一个新的目标网页 - 让我们称之为landing.html,我希望客户在访问landing.html和{{1}时首先访问/如果他们访问任何其他路线。

现在IE9不支持HTML5历史记录API,因此使用“哈希网址”路径(例如index.html)会成为/books/authors。由于URL is not sent to the server的哈希部分与服务器有关,因此所有路径均为/#!/books/authors,这意味着我无法根据该逻辑路由到/landing.html

我想到了一个hack - 将index.html重定向到/,在客户端上检测landing.html,在名为{{1的服务器(或客户端)上添加Cookie并根据服务器上的cookie重定向到正确的页面。这真是太烂了,不是一个好的解决方案。

在这种情况下处理路由的正确方法是什么?

我的后端是在ASP.NET MVC中,但我不认为这与问题相关

1 个答案:

答案 0 :(得分:0)

嗯...... landing.html的内容是什么?从它的名字我猜它是一个非常简单的页面。

难道你不能把它的内容作为index.html的一部分并根据“第一次用户”逻辑隐藏/显示它吗? 或者,如果landing.html是您的营销或其他东西创建的一些奇怪页面,则将其放在iframe中,该iframe根据相同的逻辑隐藏/显示。

(显然当你显示landing.html然后你隐藏index.html)