我有一个具有以下托管配置的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
当我浏览静态文件时,找不到它们。有什么想法吗?
答案 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)
会更改firebase.json中的代码 {“hosting”:{“public”:“。/”}}
答案 4 :(得分:-2)
看起来我的firebase.json在firebase-tools中发现了一个错误。 “忽略”部分中指定的文件被视为相对于“public”中指定的目录。如果在“忽略”部分中指定不存在的文件,它将在开始部署之前暂停,并发出类似上面的错误。