【发布时间】:2020-06-03 08:13:47
【问题描述】:
我目前正在通过 Firebase 托管一个静态网站,但正在提供的一个文件 (index.html) 存在于我的 Mac 计算机的 Public 文件夹中。由于我想提供其他文件,因此我想将索引移动到将包含未来链接文件的项目文件夹(例如/public/my-project/index.html)。
我将如何更新文件路径/目录?
【问题讨论】:
标签: node.js firebase firebase-hosting
我目前正在通过 Firebase 托管一个静态网站,但正在提供的一个文件 (index.html) 存在于我的 Mac 计算机的 Public 文件夹中。由于我想提供其他文件,因此我想将索引移动到将包含未来链接文件的项目文件夹(例如/public/my-project/index.html)。
我将如何更新文件路径/目录?
【问题讨论】:
标签: node.js firebase firebase-hosting
在您的项目目录(运行firebase deploy 或firebase deploy --only hosting 的目录)中,打开或创建firebase.json 并确保它指向正确的公用文件夹。
{
"hosting": {
"public": "public"
}
}
这是一个相对路径。如果您的项目和您的 firebase.json 位于 /projects/my-project 中,则这会将所有内容部署在 /projects/my-project/public 中。
如果您使用 firebase init 初始化 Firebase 项目,所有这些都会自动设置。
由于您的项目可能包含许多不应该部署的文件(自述文件、node_modules、构建脚本等),我建议在项目文件夹中包含一个public 文件夹,如上所述。 (不过,您可以使用 ignore 选项忽略文件,但您希望保持可管理的忽略文件列表。)
如果您真的不想在项目中使用public 文件夹,您可以尝试从firebase.json 指向当前文件夹:
{
"hosting": {
"public": "."
}
}
更多主机配置信息:https://firebase.google.com/docs/hosting/full-config
【讨论】:
/public/,但我想专门为此项目在/public/ 内创建一个文件夹,并更改文件路径以转到该文件夹。换句话说,/public/my-project/index.html 将是指令而不是 /public/index.html
firebase.json 放在项目的根目录中。由于您的项目可能包含许多不应该部署的文件(自述文件、node_modules、构建脚本等),我建议在项目文件夹中创建一个public 文件夹,例如/public/my-project/public/index.html。您的firebase.json(位于public/my-project/firebase.json 应指向此public 文件夹,如{ hosting: { "public": "public" } }。
public 文件夹,你可以尝试从你的firebase.json 指向当前文件夹,比如{ hosting: { "public": "." } }
firebase init 的信息(太棒了!):)
我在终端中调整设置时不小心偶然发现了答案,它比我预期的要简单得多。供看到此内容的任何人日后参考,
打开终端,输入firebase init (assuming you have node.js and firebase already installed)。
使用箭头键向下导航到○ Hosting 选项,按空格键进行选择,然后按Return/Enter 键继续。
将提示“您想将什么用作公共目录?”问题。输入您想要的文件路径(即public/my-project/public)并输入。
问题“配置为单页应用(将所有 url 重写为 /index.html)?”这是您的选择,取决于您的平台。
如果该位置已存在名为index.html 的文件,它将询问您是否要覆盖它并创建一个新文件。您很可能希望保留现有的索引——如果是这种情况,请输入n。
确保还遵循 @nicoqh 的宝贵建议,并区分您的公共文件夹和私人文件夹,以免您的所有文件最终都被 Firebase 部署。
【讨论】: