Firebase部署404找不到index.html

Him*_*mel 7 deployment firebase-hosting

我正在跑步firebase init,它正在创造firebase.json.firebase.json在apps根目录中,指向我的公共目录app.看这里:

firebase.json

{
  "firebase": "harrison",
  "public": "app",
  "ignore": [
    "firebase.json",
    "**/.*",
    "**/node_modules/**"
  ]
}
Run Code Online (Sandbox Code Playgroud)

这是我的firebase.json所在的地方: 在此输入图像描述

这是我的公共目录,app: 在此输入图像描述

当我从命令行运行时firebase deploy,一切似乎都正确上传.然后我运行firebase open或等效地转到部署站点,我得到一个404说我的index.html在指定目录中清除时未找到.

小智 6

如果您使用的是Yeoman,请grunt build在项目目录中运行以创建/ dist目录.

然后,firebase init再次运行(在您的项目目录中)并键入相应的Firebase应用程序,然后在公共目录(当前目录)中按Enter键.

接下来,将firebase.json更改为:

{
  "firebase": "<FirebaseAppName>",
  "public": "./dist",
  "ignore": [
    "firebase.json",
    "**/.*",
    "**/node_modules/**"
  ]
}
Run Code Online (Sandbox Code Playgroud)

最后,运行firebase deploy和firebase open.


Pau*_*erg 5

就我而言,我只需要改变从公共到./public的路径.这可能是版本控制错误.我已经打开了拉取请求.


小智 5

"rewrites": [
  {
    "source": "**",
    "destination": "/index.html"
  }
Run Code Online (Sandbox Code Playgroud)

我遇到了和你一样的问题,这是我的解决方案:

  1. 运行 Firebase init

  2. 选择主机选项

  3. 全部重写为索引:是

  4. 覆盖到 dist/index :no

然后firebase部署

然后解决问题


小智 5

我遇到了同样的问题。您所需要做的就是在 firebase.json 文件中编写以下代码

"rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
Run Code Online (Sandbox Code Playgroud)

截图在这里


Per*_*eck 1

我想我找到了原因,因为我自己也遇到了同样的问题。

如果您的 index.html 链接到错误的外部资源,甚至是加载时间过长的内部资源,您最终会遇到错误。有时您会收到 503 错误,有时会收到 404 错误。

尝试减少你的 html 文件,直到找出导致它出错的原因

另外,链接到所有脚本和 CSS 文件的缩小版本。