我正在运行firebase init
并且正在创建firebase.json
。 firebase.json
位于apps根目录中,指向我的公共目录app
。见这里:
firebase.json
{
"firebase": "harrison",
"public": "app",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
]
}
这是我的 firebase.json 所在的地方:
以下是我的公共目录,app
:
当我从命令行运行firebase deploy
时,一切似乎都正确上传。然后我运行firebase open
或等效地转到部署站点,我得到一个404,说明我的index.html在指定目录中清除时未找到。
答案 0 :(得分:6)
如果您使用的是Yeoman,请在项目目录中运行grunt build
以创建 / dist 目录。
然后,再次运行firebase init
(在您的项目目录中)并输入相应的 Firebase应用,然后在公共目录(当前目录)中按Enter键。
接下来,将 firebase.json 更改为:
{
"firebase": "<FirebaseAppName>",
"public": "./dist",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
]
}
最后,运行firebase deploy
和firebase open
。
答案 1 :(得分:5)
就我而言,我只需将路径从公共更改为 ./ public 。这可能是版本控制错误。我打开了pull request。
答案 2 :(得分:2)
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
我遇到了与您相同的问题,这是我的解决办法:
运行firebase初始化
选择主机选项
全部重写为index:是
覆盖到dist / index:no
然后部署Firebase
然后解决问题
答案 3 :(得分:1)
我想我找到了原因,因为我自己也有同样的问题。
如果您的index.html链接到错误的外部资源甚至是内部资源,这些资源需要很长时间才能加载,您最终会收到错误消息。有时你得到503错误,有时你得到404。
尝试减少你的html文件,直到找出导致它出错的原因
此外,链接到所有脚本和css文件的缩小版本。
答案 4 :(得分:0)
您的firebase.json
文件应如下所示:
{
"hosting": {
"site": "biscayne",
"public": "build",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
]
}
}
确保您对
回答build
您要将什么用作公用目录?
运行firebase init
之后。
答案 5 :(得分:0)
我遇到了同样的问题,并且得到404,然后我发现我的index.html存在于我的项目文件夹中,即
dist->项目文件夹-> index.html
因此,我的firebase.json变成了
{
"firebase": "<FirebaseAppName>",
"public": "./dist/project-folder",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
]
}
答案 6 :(得分:0)
检查您的节点版本
node --version
不支持大于10的节点版本。降级到10以下的值,如果不起作用,请尝试以下操作。
firebase登录 firebase use --add(选择正确的项目ID) firebase初始化(选择托管,而不是正确的项目ID) 如果需要(npm运行构建) Firebase部署
解决方案是第二个选择正确的项目ID的原因,因为Firebase命令以某种方式自动引用了错误的项目ID
祝你好运