"公共目录警告 - 公共目录为空"在firebase部署

时间:2014-09-19 21:57:05

标签: firebase firebase-hosting

我有一个具有以下托管配置的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

当我浏览静态文件时,找不到它们。有什么想法吗?

5 个答案:

答案 0 :(得分:4)

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

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

docs on the subject涵盖了glob pattern matching的基础知识,并提供了一些进一步的参考资料

答案 1 :(得分: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

答案 2 :(得分:1)

firebase默认在文件public的{​​{1}}文件夹中查找。

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

firebase.json

这是指向firebase查找{ "hosting": { "public": "dist" } } 文件夹中的index.html或文件夹调用dist。 您拥有的文件调用public

之后:

index.html

可能会起作用

答案 3 :(得分:0)

如果index.html在public文件夹中,

会更改firebase.json中的代码 {“hosting”:{“public”:“。/”}}

答案 4 :(得分:-2)

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