【发布时间】:2019-02-02 14:44:28
【问题描述】:
我已经完成了所有过程
- Firebase 登录
- Firebase 初始化
- Firebase 部署
现在我终于得到了一个链接https://testing-37553.firebaseapp.com/ 但我的网站没有显示所以我应该怎么做。
【问题讨论】:
-
您尝试部署什么?您是否使用包含您的 build/dist 文件夹的正确文件夹更新了您的
firebase.json?
我已经完成了所有过程
现在我终于得到了一个链接https://testing-37553.firebaseapp.com/ 但我的网站没有显示所以我应该怎么做。
【问题讨论】:
firebase.json?
Firebase 要求您输入 firebase init hosting。
File dist/your-project/index.html already exists. Overwrite?
按下
NO
你很高兴!
【讨论】:
截至 2020 年 9 月 17 日对我有用的解决方案
1- 完成 firebase 初始化 步骤。
2- 将此添加到您的 firebase.json 文件中:
//"public": should be, dist + project name on your computer
//"site": should be the app name which you created on your firebase cloud
{
"hosting": {
"public": "dist/your-project-name",
"site": "firebase-project-name",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
}
}
3- ng build --prod
4- 火力基地部署
【讨论】:
对于 Angular 8。
如果您的项目名称是“ManyuDictionary”。
1) 运行 firebase 登录。
2) 运行 firebase init 并选择:
a) 托管
b) 你想用什么作为你的公共目录? dist/Manyu字典
c) 配置为单页应用程序(将所有 url 重写为 /index.html)?是的。
Firebase 现在会将配置信息写入 firebase.json 和项目 .firebaserc 的信息。
3) 运行 ng build --prod。这将替换 dist/ManyuDictionary 中的默认 index.html。
4) 运行 firebase 部署。
【讨论】:
对于 Angular 7+,这是截至 2019 年 8 月适用于我的直接解决方案
只需删除/dist 文件夹根目录下的index.html 文件即可。
然后,复制您的/dist 文件夹中的directory(named like your project main project folder's name) 中的所有内容
最后,重新运行firebase deploy
享受!
【讨论】:
转到您的 firebase.json 文件并确保“hosting”下的“public”键设置为“build”,如下所示:
"hosting": {
"public": "build"
}
当您运行 firebase init 时,它可能默认设置为“public”。在这种情况下,它看起来像这样:
"hosting": {
"public": "public"
}
默认设置的问题是,当您运行 npm run build 时,React 会将您所有的静态资产放在“build”目录中,因此这是您想要将 firebase 指向的位置。
【讨论】:
我遇到了类似的问题,我的应用程序是使用 create react app 构建的。我试图通过firebase进行部署,但得到了firebase的默认页面,然后我发现我还没有构建我的应用程序,所以firebase无法找到我的应用程序html文件,因此它试图部署默认的。
我通过运行 yarn build 解决了这个问题,然后当我执行 firebase init 时选择了“hosting”选项。在选择要部署的文件夹的这一步之后,我选择了“构建”,这解决了我的问题,我的应用程序被托管了。希望这会有所帮助!
【讨论】:
您看到的是在您创建新项目时由 CLI 创建的默认 index.html 页面。
您应该随心所欲地调整此index.html 页面(即通过修改此页面的 HTML/CSS/JS 代码,在您的本地项目目录中)并使用
firebase deploy
或
firebase deploy --only hosting
【讨论】: