Firebase CLI:"配置为单页应用(重写所有网址为/index.html)"

时间:2016-06-06 22:09:57

标签: firebase firebase-hosting firebase-tools

我刚刚使用Firebase CLI初始化静态托管项目。当您启用"配置为单页面应用程序时,会发生什么?选项?我正在寻找有关哪些文件被修改的详细说明,以及它对Firebase后端的影响。

Screenshot of firebase init command

5 个答案:

答案 0 :(得分:50)

该选项只需在firebase.json文件中设置一个标记,即将所有网址重定向到/index.html

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

有关详细信息,请参阅documentation of Firebase Hosting

答案 1 :(得分:16)

完整示例:

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

答案 2 :(得分:0)

官方Firebase说明:

我们去年(第一季度和第二季度)曾使用过该选项,但它似乎无济于事,但如今,当我们应用它时,肯定会发生很大的变化。 有关其功能的完整官方解释位于此处:

https://firebase.google.com/docs/hosting/url-redirects-rewrites#section-rewrites

同一页的下一部分中甚至还有一些有关标头用法的有用信息。

答案 3 :(得分:0)

请注意:如果您要使用服务器端渲染(SSR),请输入并按照以下步骤设置rewrites

"rewrites": [
  {
    "function": "angularUniversalFunction",
    "source": "**"
  }
]

毕竟,无论您选择什么,都可以始终在 firebase.json 文件中进行更改。

答案 4 :(得分:0)

如果将其设置为yes,那么所有无效的URL(例如www.example.com/some-invalid-url)都将被重定向到您网站的index.html,这是一件好事。您也可以将其设置为自定义的404.html

firebase.json

{

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

奖金:将cleanUrls设置为true,以从部署的网站网址中删除.html扩展名,否则所有没有.html的网址都将重定向到index.html。 / p>