首页 > 解决方案 > firebase 托管 - 在 iframe 中显示不正确的内容

问题描述

我有一个在 firebase 上运行的反应应用程序,需要在 IFrame 中显示内容。在 firebase 上运行时,firebase 在 IFrame 而不是相关页面中显示 index.html。

所有文件都在同一个目录中,但 firebase 默认使用 index.html 而不是请求的页面

标签: firebasefirebase-hosting

解决方案


当您在命令行中初始化 Firebase 项目时,预部署时,您可能会对询问此项目是否为单页应用程序的提示说“是”。说是,CLI 工具在 firebase.json 设置文件中生成了以下设置:

firebase 重写设置

这告诉 Firebase 服务器将所有页面请求路由到您的 index.html 文件 - 注意通配符 ** - 以便您的 React 应用程序可以加载适当的页面。

如果您不希望在该规则中包含特定路由,例如对其他文件的调用 - 您需要在该 firebase.json 设置文件中包含额外的重写:

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

*请注意顺序很重要,请确保它在 catch-all 通配符选项之前

您可以在官方文档的相关部分阅读更多关于重写的信息。


推荐阅读