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

2024-01-05

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

-index.html
-blog/index.html

我在里面放了一个带有路由的 Angular 应用程序blog/index.html,然后转到路线example.com/blog/page/2,它会转到 Angular 应用程序中正确的博客页面。从某种意义上来说,它打开了/blog/index.html、和流程/page/2在 Angular 应用程序中。

How?

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

我认为它能像这样工作真是太棒了,但我不明白它在技术上是如何实现的。


apache 或 nginx 或任何您的 Web 服务器都需要正确且有意地配置为服务于 Angular 应用程序。对于各种 Web 服务器配置有无数的指南,但通常您会配置任何 404 错误以重定向到项目根目录 index.html 页面。然而,如果出现 REAL 404,您的 Angular 应用程序应该设置为正确处理它。

这仅用于初始页面加载或刷新。一旦 Angular 应用程序启动并运行,它就成为一个有争议的问题,因为 Angular 会拦截并处理所有导航,因此它不会再次访问您的 Web 服务器。角度路由器只是调用它需要的文件,并使用浏览器历史记录 API 将项目推送到您的网络历史记录中以模拟正常导航。它们被称为单页应用程序,因为实际上只有一个页面从您的网络服务器提供,其余的都是技巧/模拟。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 路由如何优先于静态站点上的文件路径 的相关文章

随机推荐