如何更改 Firebase 提供的文件的目录/文件路径?

How to change the directory/file path of a file being served by Firebase?

提问人:ttoshiro 提问时间:6/2/2020 最后编辑:Frank van Puffelenttoshiro 更新时间:6/3/2020 访问量:2954

问:

我目前正在通过 Firebase 托管一个静态网站,但正在提供的文件 () 存在于我 Mac 计算机的公共文件夹中。由于我想提供其他文件,因此我想将索引移动到将包含未来链接文件的项目文件夹(例如)。index.html/public/my-project/index.html

如何更新文件路径/目录?

节点.js 火力基地 火力基地托管

评论


答:

3赞 nicoqh 6/2/2020 #1

在项目目录(运行 或 的目录)中,打开或创建并确保它指向正确的公用文件夹。firebase deployfirebase deploy --only hostingfirebase.json

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

这是一个相对路径。如果您的项目和 your 位于 中,则会将所有内容部署在 中。firebase.json/projects/my-project/projects/my-project/public

如果您使用 初始化 Firebase 项目,则所有这些都会自动设置firebase init

由于您的项目可能包含许多不应该部署的文件(自述文件、node_modules、构建脚本等),因此我建议在项目文件夹中有一个文件夹,如上所述。(但是,您可以使用该选项忽略文件,但您希望使此忽略文件列表易于管理。publicignore

如果你真的不想在你的项目中有一个文件夹,你可以尝试从你的publicfirebase.json

{
  "hosting": {
    "public": "."
  }
}

有关托管配置的详细信息:https://firebase.google.com/docs/hosting/full-config

评论

0赞 ttoshiro 6/2/2020
感谢您的回复。我应该将 firebase.json 文件放在哪个文件夹中?如何更改文件路径?现在它只是设置为 ,但我想专门为这个项目创建一个文件夹,并更改文件路径以转到该文件夹。换句话说,将是指令而不是/public//public//public/my-project/index.html/public/index.html
1赞 nicoqh 6/2/2020
放入项目的根目录。由于您的项目可能包含许多不应该部署的文件(自述文件、node_modules、构建脚本等),因此我建议在项目文件夹中创建一个文件夹,例如 .您的 (位于 然后应该指向此文件夹,例如 .firebase.jsonpublic/public/my-project/public/index.htmlfirebase.jsonpublic/my-project/firebase.jsonpublic{ hosting: { "public": "public" } }
1赞 nicoqh 6/2/2020
如果你真的不想在你的项目中有一个文件夹,你可以尝试从你的 指向当前文件夹,比如publicfirebase.json{ hosting: { "public": "." } }
0赞 ttoshiro 6/2/2020
谢谢,这是有道理的。这不是我想要的答案,但你在这里给了我一个非常可靠的提示,如果我不在这里问,我可能会忽略。非常感谢!
0赞 nicoqh 6/2/2020
很高兴听到它!在我看到你自己的新答案之前,我顺便在我的答案中添加了一些信息(这很棒:)!firebase init
0赞 ttoshiro 6/2/2020 #2

我在终端中调整设置时不小心发现了答案,这比我预期的要简单得多。为了将来参考任何看到此内容的人,

  1. 打开终端,然后输入(假设您已经安装了 node.js 和 firebase)。firebase init

  2. 使用箭头键向下导航到该选项,按空格键进行选择,然后按键继续。○ HostingReturn/Enter

  3. 问题“你想用什么作为你的公共目录?”将提示。键入所需的文件路径(即 )并输入。public/my-project/public

  4. 问题“配置为单页应用(将所有 url 重写为 /index.html)?这是您的选择,取决于您的平台。

  5. 如果该位置已存在名为 file 的文件,它将询问您是否要覆盖它并创建一个新文件。最有可能的是,您将希望保留您拥有的现有索引 -- 如果是这种情况,请键入 .index.htmln

请务必遵循 @nicoqh 的宝贵建议,并区分您的公共文件夹和私人文件夹,以便并非所有文件最终都会被 Firebase 部署。