角路由如何优先于静态站点上的文件路径



如果我用文件结构构建静态站点:

-index.html
-blog/index.html

,我在blog/index.html内放置了一个带有路由的角应用程序,然后转到路由example.com/blog/page/2,它转到Angular应用程序中的正确博客页面。从某种意义上说,它打开/blog/index.html,并在Angular应用程序中处理/page/2

如何?

为什么apache(或nginx)不优先于此,并尝试打开/blog/page/2/index.html,而没有找到它,请显示404?

我认为它可以这样工作真是太棒了,但是我无法弄清楚它在技术上是如何可能的。

apache或nginx或任何Web服务器都需要正确且有意配置以提供Angular应用程序。各种Web服务器配置都有无数的指南,但是通常您将配置任何404错误以重定向到项目root index.html页面。但是,如果有真实的404,则应设置您的Angular应用程序以正确处理它。

这仅用于初始页面加载或仅刷新。一旦Angular应用程序启动并运行,这是一个毫无意义的,因为Angular截距并处理所有导航,因此它不会再次触及您的Web服务器。Angular路由器只是调用所需的文件,并使用浏览器历史记录API将项目推入您的Web历史记录以模拟正常的导航。它们称为单页应用程序,因为实际上只有您的Web服务器提供了一个页面,其余的就是所有技巧/仿真。

最新更新