You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase多站点部署:hosting.public绝对路径无法使用问题

如何在Firebase多站点配置中使用绝对路径指定待部署内容

我想在Firebase Hosting的多站点配置中用绝对路径指定待部署内容,试了下面的配置却没生效:

"target": "site",
      "public": "/tmp/dist",
      "ignore": [
        "firebase.json",
        "**/.*",
        "**/node_modules/**"
      ],

部署时收到报错:Error: Directory '/tmp/dist' for Hosting does not exist.,但我用ls /tmp/dist确认过这个文件夹确实存在。

后来我在项目目录下建了软链接ln -s /tmp/dist dist,部署就能正常运行了,但这只是临时办法。

另外因为是多站点项目,没法用-p参数指定路径,执行下面的命令会报错:

$ firebase deploy -p /tmp/dist --only hosting:site

Error: Cannot specify --public option with multi-site configuration.

Having trouble? Try firebase [command] --help

解决方案

Firebase Hosting多站点配置里的public字段不支持直接写绝对路径,CLI会默认把路径解析成相对于项目根目录的相对路径。

有两种可行的解决办法:

  1. 用项目内的软链接(适合临时/简单场景)
    继续用你现在的操作:在项目根目录创建指向目标绝对路径的软链接,然后把firebase.json里的public设为软链接的名字(比如dist)。部署前要确保软链接已经建好,CI环境里可以把ln -s /tmp/dist dist加到部署的前置步骤里。

  2. 修改Firebase CLI的工作目录(适合CI/自动化场景)
    要是不想依赖软链接,可以在执行firebase deploy前先切换到目标绝对路径的父目录,同时指定项目配置文件的绝对路径。比如:

    cd /tmp && firebase deploy --only hosting:site --config /path/to/your/project/firebase.json
    

    这时候要把firebase.json里对应站点的public字段改成相对路径(这里就是dist,因为当前工作目录是/tmp)。

内容的提问来源于stack exchange,提问作者angelcervera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 23:58:12