我的 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 路由优先于静态文件服务。
当我 运行 我的本地主机上的程序时,我可以使用 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 路由优先于静态文件服务。