我将Angular应用程序部署到Firebase,但是仅上传了一个文件。 我遵循许多教程,包括Get started with Firebase Hosting
部署后转到托管URL:https://book-search-api.firebaseapp.com 我所看到的只是其他设置,例如:
欢迎Firebase托管设置完成您正在看到此信息是因为 您已经成功设置了Firebase Hosting。现在该开始构建了 一些非凡的东西!
这是我的cli输出
L:\ NetProject \ BooksProject \ BooksProject \ ClientApp> firebase初始化
######## #### ######## ######## ######## ### ###### ######## ## ## ## ## ## ## ## ## ## ## ## ###### ## ######## ###### ######## ######### ###### ###### ## ## ## ## ## ## ## ## ## ## ## ## #### ## ## ######## ######## ## ## ###### ########
您将在此目录中初始化Firebase项目:
L:\ NetProject \ BooksProject \ BooksProject \ ClientApp
开始之前,请紧记:
- 您要在现有Firebase项目目录中进行初始化
?您准备好继续了吗?是啊您有哪些Firebase CLI功能 想要为此文件夹设置?按空格键选择功能,然后 输入以确认您的选择。托管:配置和部署Firebase 托管网站
===项目设置
首先,让我们将此项目目录与Firebase项目相关联。 您可以通过运行firebase use --add创建多个项目别名, 但目前,我们将只设置一个默认项目。
i .firebaserc已经有一个默认的项目,使用book-search-api。
===托管设置
您的公共目录是文件夹(相对于您的项目 目录),其中包含要与之一起上传的托管资产 Firebase部署。如果您有资产的建造流程,请使用 构建的输出目录。
?您想使用什么作为公用目录?客户端应用程序? 配置为单页应用程序(将所有URL重写为/index.html)?是 ?文件client-app / index.html已经存在。覆盖?是 +编写了client-app / index.html
i将配置信息写入firebase.json ... i编写项目 信息到.firebaserc ...
- Firebase初始化完成!
L:\ NetProject \ BooksProject \ BooksProject \ ClientApp> ng build --prod --aot
日期:2019-06-19T06:54:49.906Z哈希值:0428c1e6725a31f1ae9c时间: 41224ms块{0} runtime-es5.741402d1d47331ce975c.js(运行时)1.41 kB [entry] [rendered]块{1} main-es5.1057831c3a881ebea921.js (主要)517 kB [初始] [渲染]块{2} polyfills-es5.405730e5ac8f727bd7d7.js(polyfills)111 kB [初始] [呈现]块{3} styles.652a17618ef377c73983.css(样式)200 kB [初始] [呈现]
日期:2019-06-19T06:55:19.884Z哈希:c671e9fe8c3d67a7118d时间: 29918ms块{0} runtime-es2015.858f8dd898b75fe86926.js(运行时) 1.41 kB [entry] [rendered] chunk {1} main-es2015.e5390b5408abc2d4f8dd.js(main)449 kB [initial] [rendered] 块{2} polyfills-es2015.edf60e92366a5a261979.js(polyfills)36.8 kB [初始] [渲染]块{3} styles.652a17618ef377c73983.css (样式)200 kB [初始] [渲染]
L:\ NetProject \ BooksProject \ BooksProject \ ClientApp> firebase部署-m “提交消息”-仅托管
===部署到'book-search-api'...
我正在部署托管我正在托管[book-search-api]:开始部署... 我托管[book-search-api]:在客户端应用中找到1个文件 +托管[book-search-api]:文件上传完成后托管[book-search-api]:定稿版本... +主机托管[book-search-api]:版本已定稿主机托管[book-search-api]:发布新版本... +托管[book-search-api]:发布完成
- 部署完成!
项目控制台: https://console.firebase.google.com/project/book-search-api/overview 托管网址:https://book-search-api.firebaseapp.com
L:\ NetProject \ BooksProject \ BooksProject \ ClientApp>
更新
在@ShahidIslam的帮助下,我将firebase.json公共属性从“ client-app”更改为“ dist”,然后运行
firebase deploy -m“提交消息”-仅托管
现在我认为是因为它上传了文件
===部署到'book-search-api'...
i部署主机 我托管[book-search-api]:开始部署... 我托管[book-search-api]:在dist中找到10个文件 +托管[book-search-api]:文件上传完成 我托管[book-search-api]:定稿版本... +托管[book-search-api]:版本已完成 我托管[book-search-api]:发布新版本... +托管[book-search-api]:发布完成
项目控制台:https://console.firebase.google.com/project/book-search-api/overview 托管网址:https://book-search-api.firebaseapp.com
当我现在转到https://book-search-api.firebaseapp.com
说:
找不到页面此文件不存在,并且没有index.html 在当前目录或根目录中的404.html中找到。
我为什么看到这个?您可能为以下位置部署了错误的目录 你的申请。检查您的firebase.json并确保公共 目录指向包含index.html文件的目录。
您还可以在网站的根目录中添加404.html来替换它 具有自定义错误页面的页面。
项目如下:
答案 0 :(得分:1)
第一次初始化firebase时要先检查dist文件夹。将编译后的代码(main.js,poly.json,style.js等)的位置提供给firebase,当firebase询问公共目录时,在这种情况下,应该已经给了“ dist / ClientApp”
您在ClientApp中编译的代码(是dist文件夹的子目录)修改
firebase.json。 “ public”:“ dist / ClientApp”。 firebase从此属性(公共)获取已编译代码的获取目录位置,
{
"hosting": {
"public": "dist/ClientApp",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
}
}