在具有不同主页的单页应用程序中路由



我有一个单页应用程序,这意味着服务器上的所有内容都被重定向到一个index.html文件,该文件使用HTML5历史api(pushstate)进行繁重的提升和路由。

现在,我想在侧面添加一个新的登录页,我们称之为landing.html,我希望客户端在访问/时首先访问landing.html,如果访问任何其他路由,则首先访问index.html

现在IE9不支持HTML5历史API,所以使用/books/authors这样的"hash urls"路径就变成了其中的/#!/books/authors。由于就服务器而言,URL的哈希部分并没有发送到服务器,因此所有路径都是/,这意味着我无法基于该逻辑路由到landing.htmlindex.html

我想到了一种破解方法——将带有/的URL重定向到landing.html,在客户端上检测#!,在服务器(或客户端)上添加一个名为notReallyHomePage的cookie,并根据服务器上的cookie重定向到正确的页面。这真的很麻烦,不是一个好的解决方案。

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

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

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

难道你不能让它的内容成为index.html的一部分,并根据"第一次用户"逻辑隐藏/显示它吗?或者,如果landing.html是由您的营销或其他原因创建的某个奇怪页面,那么将其放置在iframe中,该iframe根据相同的逻辑隐藏/显示。

(很明显,当你显示landing.html时,你会隐藏index.html)

相关内容

  • 没有找到相关文章

最新更新