我正在尝试使用window.history API实现一个javascript路由器。我一直在使用ui-router很长一段时间,但我想为我的小应用程序创建自己的路由器。一切都很好,直到遇到这样的问题:我在localhost:8080 / index.html服务我的页面。我在页面中使用与历史API相关的属性进行路由。当我点击路线时,我丢失了index.html部分。例如url变为localhost:8080 / home。当我直接尝试进入该状态时,正如您所期望的那样,我自然会得到404错误。如何强制将index.html路由到该状态?
答案 0 :(得分:1)
HTML5历史记录(pushState
等)通过在客户端重写URL来工作。因此,它需要服务器也能够重写URL,并加载相同的index.html
文件,无论URL。
如果没有此服务器重写,两个可能的选项是:
使用基于/idex.html#!/current/path
不要使用JavaScript进行路由,只需依靠服务器目录结构为每个端点提供不同的文件