javascript window.history API 在第一页加载时

javascript window.history API on first page load

我正在尝试使用 window.history API 实现 javascript 路由器。我已经使用 ui-router 很长时间了,但我想为我的小应用程序创建我自己的路由器。一切看起来都很好,直到遇到这样的问题:我在 localhost:8080/index.html 提供我的页面。我在具有 history API 相关属性的页面中进行路由。当我点击一条路线时,我丢失了 index.html 部分。例如 url 变成 localhost:8080/home。当我直接尝试进入该状态时,如您所料,我自然会收到 404 错误。如何强制路由到 index.html 到那个状态?

HTML5 历史记录(pushState 等)通过在客户端重写 URL 来工作。因此,它需要服务器也能够重写 URL,并加载相同的 index.html 文件,无论 URL.

如果不重写此服务器,两个可能的选项是:

  • 使用基于 URL 的 hashbang JavaScript 路由器,例如 /idex.html#!/current/path

  • 不使用JavaScript路由,只依赖服务器目录结构为每个端点提供不同的文件