因此,让我们说在我的Firebase公用文件夹中,我有一个index.html
和一个salon.html
。如何在Firebase主机中处理动态URL路由
现在对于像xyz.com/salon/43
这样的网址,我想加载salon.html
并在JavaScript中我想从实时数据库中获取沙龙43。
现在我可以有像xyz.com/salon?id=43
这样的网址。我想知道是否有可能在Firebase托管服务中实现前者,以及如何实现。
因此,让我们说在我的Firebase公用文件夹中,我有一个index.html
和一个salon.html
。如何在Firebase主机中处理动态URL路由
现在对于像xyz.com/salon/43
这样的网址,我想加载salon.html
并在JavaScript中我想从实时数据库中获取沙龙43。
现在我可以有像xyz.com/salon?id=43
这样的网址。我想知道是否有可能在Firebase托管服务中实现前者,以及如何实现。
您正在寻找Firebase托管服务改写。从documentation:
如果要为多个URL显示相同的内容,请使用重写。重写对于模式匹配非常有用,因为您可以接受任何与模式匹配的URL,并让客户端代码决定要显示的内容。重写规则可用于支持使用HTML5 pushState进行导航的应用程序。当浏览器尝试打开指定的源URL时,将会在目标URL中给出该文件的内容。
"hosting": { // Add the "rewrites" section within "hosting" "rewrites": [ { "source": "**", "destination": "/index.html" } ] }
谢谢!太棒了。我已经看到了,但我没有意识到URL不会像重定向一样被维护。在问这个问题之前,应该先尝试一下。 –
不用担心。我几乎回答了重定向,然后意识到它不会保持状态。 –
你可以选择使用动态主机:https://firebase.google.com/docs/hosting/
URL重写可以通过
firebase.json
档案托管内限定rewrites
部分中指定功能 –谢谢!我不知道云功能可以这样使用。 '...你可以拥有一个像/ blog/这样的URL。此URL模式可以指向一个动态使用URL博客帖子ID参数的功能,以从您的Firebase实时数据库中动态检索内容。“ –