Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 在静态站点上,角度路由如何优先于文件路径_Angular_Angular Routing_Angular Router - Fatal编程技术网

Angular 在静态站点上,角度路由如何优先于文件路径

Angular 在静态站点上,角度路由如何优先于文件路径,angular,angular-routing,angular-router,Angular,Angular Routing,Angular Router,如果我使用文件结构构建静态站点: -index.html -blog/index.html 我在blog/index.html中放置了一个带有路由的Angular应用程序,然后转到routeexample.com/blog/page/2,它会转到Angular应用程序中正确的博客页面。从某种意义上说,它打开/blog/index.html,并在Angular应用程序中处理/page/2 怎么做 为什么Apache(或Nginx)不优先于此,并尝试打开/blog/page/2/index.htm

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

-index.html
-blog/index.html
我在
blog/index.html
中放置了一个带有路由的Angular应用程序,然后转到route
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错误以重定向到project root index.html页面。但是,如果是真正的404,您的angular应用程序应该设置为正确处理它


这仅用于初始页面加载或刷新。一旦angular应用程序启动并运行,它将成为一个没有意义的点,因为angular会拦截并处理所有导航,这样它就不会再次攻击您的web服务器。angular router只调用它需要的文件,并使用浏览器历史API将项目推送到web历史中,以模拟正常的导航。它们被称为单页应用程序,因为实际上只有一个页面从您的web服务器提供,其余的都是技巧/模拟。

啊,好吧,事实证明,在我的特殊情况下,我与一个PHP应用程序集成,PHP应用程序被设置为在路由时忽略路由的
/Page/*
部分,这就是它工作的原因。是的,这是另一种方式,如果你有一个应用程序处理请求,而不是直接使用web服务器。