Node.js 允许客户端路由的服务器端响应
我正在开发一个具有客户端路由器的单页应用程序。因此,尽管运行应用程序的基本url将是http://example.com或http://example.com/index.html,但会跳过路由“/”和“/index.html”的域名 但在我的应用程序中的某个地方,由于我的客户端路由器,我可能会调用类似“/appoints/20160113”的路由,客户端路由器会将我重定向到SPA中的相应“约会页面”,并传递todays date参数 但是如果用户直接调用,我会认为服务器应该直接用/index.html响应,这样浏览器就不会得到404 我正在使用nodejs构建服务器(特别是http2模块,但我认为这并不重要,我的示例也不使用https,尽管它们使用http2)。我只是试着改变服务器,如果它被一个未知的url击中,它会用index.html文件响应 然而,浏览器将此视为其第一个响应,然后请求与url相关的其他附加文件(例如,使用/appoints/20160113/styles/main.css)。这将导致一个无限循环,因为服务器在index.html中响应另一个副本(并立即获得/appoints/20160113/styles/styles/main.css的请求) 在页面的生命周期中,javascript还不能运行(特别是路由器软件),因此显然这种方法过于简单 我还编写了客户端路由器(使用历史api),以便在需要时进行更改Node.js 允许客户端路由的服务器端响应,node.js,http,single-page-application,Node.js,Http,Single Page Application,我正在开发一个具有客户端路由器的单页应用程序。因此,尽管运行应用程序的基本url将是http://example.com或http://example.com/index.html,但会跳过路由“/”和“/index.html”的域名 但在我的应用程序中的某个地方,由于我的客户端路由器,我可能会调用类似“/appoints/20160113”的路由,客户端路由器会将我重定向到SPA中的相应“约会页面”,并传递todays date参数 但是如果用户直接调用,我会认为服务器应该直接用/index.
应如何处理这种情况。我想也许301重定向到/index.html或其他什么,然后路由器的初始调度知道这一点,可以执行popstate或其他操作。理想情况下,我希望支持通过外部方式在用户之间传递URL,但直到我真正尝试实现它之前,我还没有意识到其中的含义。我不知道这是否是最好的方法,但在这里没有得到任何答案,我决定尝试一些不同的方法,看看哪种方法效果最好 每种方法都涉及到301重定向到/index.html,然后通过不同的机制提供我重定向的url 这就是我试过的