2

我有一个具有以下托管配置的 firebase 应用程序:

{
  "firebase": "the-world-table",
  "public": "app",
  "ignore": [
    "firebase.json",
    "**.*",
    "**/node_modules/**"
  ]
}

app 目录不为空(其中有一个 index.html 和一个 javascript 文件)。但是,当我部署时,我收到以下警告:

Preparing to deploy Public Directory...
Public Directory Warning - Public directory is empty, removing site
progress: 100%
Sucessfully removed

当我浏览静态文件时,找不到它们。任何想法这里有什么问题?

4

5 回答 5

4

您的忽略规则似乎有点过于热衷于从您指定要部署的目录中删除文件:

**/.*您指定的规则不是匹配任何包含.字符的子文件夹中的所有文件的默认忽略规则,而是匹配**.*要部署的文件夹的根目录中包含 a 的所有文件,.在这种情况下不会导致任何内容保留。如果您删除此行或添加/后面的行,您应该会看到您期望的行为。

主题的文档涵盖了glob 模式匹配的基础知识并提供了一些进一步的参考

于 2014-09-23T01:18:45.477 回答
3

firebase 默认在文件夹public中查找 file index.html

例如,如果在 angular4 中index.html存在文件夹dist,则必须进入firebase.json并粘贴到那里:

{
    "hosting": {
        "public": "dist"
    }
}

这是直接让firebaseindex.htmldist文件夹或文件夹调用中查找public。你有你的文件调用的核心index.html

在那之后:

firebase deploy

可能会工作

于 2017-12-07T12:18:26.110 回答
2

看起来您正在尝试部署一个空目录。

public属性应对应于您的公共文件所在的位置,例如index.html驻留位置。

有几种方法可以修复它:

1.更改配置以指向您的公共内容

更改firebase.json以指向正确的位置。例如,如果您的 html 文件与 位于同一目录中firebase.json,则您的配置可能如下所示:

{
  "firebase": "the-world-table",
  "public": ".",
  "ignore": [
    "firebase.json",
    "**.*",
    "**/node_modules/**"
  ]
}

2.使目录结构与您的配置匹配

这是一个适用于您的firebase.json配置的示例目录结构:

- project/
   - README.md
   - firebase.json
   - app/
       - index.html
于 2014-09-19T22:26:36.063 回答
0

Change the below code in your firebase.json if you your index.html is in a public folder

{
  "hosting": {
    "public": "./"
  }
}
于 2017-06-13T04:14:30.390 回答
-3

看起来我的 firebase.json 在 firebase-tools 中发现了一个错误。“忽略”部分中指定的文件被视为相对于“公共”中指定的目录。如果您在“忽略”部分中指定不存在的文件,它甚至会在开始部署之前停止并给出类似上述错误的错误。

于 2014-09-20T02:51:19.967 回答