我有一个单页应用程序 - 这意味着服务器上的所有内容都会被重定向到单个index.html
文件,该文件使用HTML5历史记录api(pushstate)完成繁重的工作和路由。
现在,我想在旁边添加一个新的目标网页 - 让我们称之为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中,但我不认为这与问题相关
答案 0 :(得分:0)
嗯...... landing.html的内容是什么?从它的名字我猜它是一个非常简单的页面。
难道你不能把它的内容作为index.html的一部分并根据“第一次用户”逻辑隐藏/显示它吗? 或者,如果landing.html是您的营销或其他东西创建的一些奇怪页面,则将其放在iframe中,该iframe根据相同的逻辑隐藏/显示。
(显然当你显示landing.html然后你隐藏index.html)