将 public 之外的根文件夹添加到托管 Firebase

Adding root folder outside of public to hosting Firebase

我在 Firebase 上使用不同的网站有以下结构(以处理不同的主题)。

/src
/theme-1/index.html
/theme-2/index.html

所有 "juice" 都在 src 中,文件 index.html 对于 theme-1theme-2 是相同的,除了我所在的行参考 .css 文件,我实际上在其中使用了不同的 on.

目前,我只配置了一个目标,但我会在 firebase.json 中添加更多:

{ "hosting":{

    "target": "theme-1",
    "public": "theme-1",
    "ignore": [
        "firebase.json",
        "**/.*",
        "**/node_modules/**"
    ],
    "rewrites": [
        {"source": "**","destination": "/theme-1/index.html"}
    ],
    "cleanUrls": true,
    "headers": [ {
        "source": "**",
        "headers": [ {
          "key": "Cache-Control",
          "value": "max-age=60"
        } ]
     } ]

}

}

然后我使用 cmd 命令配置我的目标以指向我的 firebase 站点:

firebase target:apply hosting theme-1 theme-1

然后部署网站:

firebase deploy

但是,当我访问该页面时(尽管它在本地工作),似乎无法找到根文件夹/src(404 错误)。

如何在我的部署中也包含文件夹 /src 以使其以相同的方式工作?

只有public指定的目录被部署到Firebase。这个名字有点误导,因为没有 "private" files/directories.

因此,您必须执行 "public": "src"(或者 "public": ".",如果您还想部署 theme 目录),并相应地调整其他属性。