部署两个工作区的 Firebase 托管

Firebase Hosting deploying two workspaces

我有两个工作区:

main
blog

使用 Quickstart Guide,我已成功将 main 工作区部署到 mycustomdomain.firebaseapp.com

我的firebase.json看起来如下:

{
  "firebase": "mycustomdomain",
  "public": "/",
  "ignore": [
    "firebase.json",
    "**/.*",
    "**/node_modules/**"
  ],
  "rewrites": [ {
    "source": "**",
    "destination": "/index.html"
  } ]
}

请注意,我使用重写来处理干净的 url,因为我正在托管 Angular 1.x 网站。

现在,我想将 blog 工作区的内容上传到域 mycustomdomain.firebaseapp.com/blog。我怎样才能做到这一点?

一种方式:

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

因此,路径以 /blog/ 开头的任何请求都将由 /blog.html 处理,其他所有请求都将由 index.html 处理。

有了这个:

  • https://mycustomdomain.firebaseapp.com/ -> index.html
  • https://mycustomdomain.firebaseapp.com/blog/ -> blog.html

请注意最后一个斜杠 URL。否则,该请求仍将由 index.html 提供服务。如果您不希望这样,请将第一个重写更改为 "source": "/blog**"

这一切都归结为 glob pattern matching that Firebase Hosting uses to map the path to a destination. Use an online tester to play with them, if you've never done much with them. I just used http://www.globtester.com/