2017-05-30 37 views
2

因此,让我们说在我的Firebase公用文件夹中,我有一个index.html和一个salon.html如何在Firebase主机中处理动态URL路由

现在对于像xyz.com/salon/43这样的网址,我想加载salon.html并在JavaScript中我想从实时数据库中获取沙龙43。

现在我可以有像xyz.com/salon?id=43这样的网址。我想知道是否有可能在Firebase托管服务中实现前者,以及如何实现。

+1

你可以选择使用动态主机:https://firebase.google.com/docs/hosting/

URL重写可以通过firebase.json档案托管内限定rewrites部分中指定功能 –

+0

谢谢!我不知道云功能可以这样使用。 '...你可以拥有一个像/ blog/这样的URL。此URL模式可以指向一个动态使用URL博客帖子ID参数的功能,以从您的Firebase实时数据库中动态检索内容。“ –

回答

8

您正在寻找Firebase托管服务改写。从documentation

如果要为多个URL显示相同的内容,请使用重写。重写对于模式匹配非常有用,因为您可以接受任何与模式匹配的URL,并让客户端代码决定要显示的内容。重写规则可用于支持使用HTML5 pushState进行导航的应用程序。当浏览器尝试打开指定的源URL时,将会在目标URL中给出该文件的内容。

"hosting": { 
    // Add the "rewrites" section within "hosting" 
    "rewrites": [ { 
    "source": "**", 
    "destination": "/index.html" 
    } ] 
} 
+0

谢谢!太棒了。我已经看到了,但我没有意识到URL不会像重定向一样被维护。在问这个问题之前,应该先尝试一下。 –

+1

不用担心。我几乎回答了重定向,然后意识到它不会保持状态。 –