我的 Angular 网络应用按预期通过按钮进行路由,但是当我在 url 中键入页面路径时,路由不起作用。在 Firebase 上托管时

My Angular web app is routing through buttons as expected, but when I type the page path in the url, routing doesn't work. While hosted on firebase

当我 运行 我的本地主机上的程序时,我可以使用 url 浏览我的程序,但当它托管在 firebase 上时则不能。

例) 输入“www.localhost:4200/home”带我回家。

输入“www.localhost:4200/contact”会转到联系页面。

但是

当我在 firebase 上托管网站时,我只能直接访问它:“www.portfoliotest.web.app”并且通过按钮进行路由有效,但当我键入“www.portfoliotest.web.app/home" 或 "www.portfoliotest.web.app/contact" 但我得到的是 "找不到页面" firebase 错误。

如何设置我的路由以便我可以通过 url 访问我的页面?

谢谢。

路由不是您的问题:问题在于您设置 Firebase 的方式。

在您的 firebase.json 中,您需要将所有 URL 重定向到 index.html:

"rewrites": [
  {
    "source": "**",
    "destination": "/index.html"
  }
]

这样,您的 Angular 路由优先于静态文件服务。