Firebase 托管在部署 Angular 6 应用程序后显示欢迎页面?
Posted
技术标签:
【中文标题】Firebase 托管在部署 Angular 6 应用程序后显示欢迎页面?【英文标题】:Firebase hosting showing welcome page after deploying angular 6 app? 【发布时间】:2019-10-20 04:04:06 【问题描述】:我想开发 Angular 6 应用程序,但在部署 firebase 后只显示欢迎页面。
这是我已采取的部署步骤。
-
已安装 firebase-tools
ng build --prod(在我的应用中)
firebase 初始化
准备好继续了吗? (Y/n) 是
(*) 托管:配置和部署 Firebase 托管站点
您想使用什么作为您的公共目录? (公共)分布
配置为单页应用程序(将所有 url 重写为 /index.html)? (y/N) 是的
文件 dist/index.html 已经存在。覆盖? (y/N) 是的
Firebase 初始化完成!
在这一步中,我已经删除了dist文件夹并再次运行
ng build --prod
angular build app 在dist
目录内的子文件夹中,因此我将包含index.html 的子目录中的所有内容复制到dist/
。
firebase 部署
firebase 开放托管:网站
但在完成所有操作后,我仍然在链接中获得欢迎页面。
我做错了什么!?
【问题讨论】:
【参考方案1】:尝试: 8. 文件 dist/index.html 已经存在。覆盖? (是/否) 否 并以隐身模式打开指向您应用的链接。说真的,我坚持了几个小时,因为这个 firebase 索引在我的案例中被缓存了,所以这就是为什么我在部署后看不到我的应用程序的原因。
【讨论】:
为什么它可以在隐身模式下工作??【参考方案2】:浏览器缓存也是我的问题。如上所述,尝试隐身或使用 proxysite.com(非常有用的网站)以避免浏览器缓存
【讨论】:
【参考方案3】:在我的例子中,我在项目目录 (src
) 中初始化了 firebase。只需检查您所在的目录。它应该在顶层。
在你构建它并尝试部署它之后,它会是一样的,因为网页已经被缓存了。所以要确保在incognito
中使用。
【讨论】:
【参考方案4】:问题是:
firebase 正在寻找index.html
文件,有时它不直接存在于dist
目录中
解决方案:
将firebase.json
中的public
路径更新为"public":"dist/ProjectName"
或dist
文件夹中index.html
文件的路径
示例
"hosting":
"public": "dist/<YourProjectName>",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
"source": "**",
"destination": "/dist/index.html"
]
【讨论】:
【参考方案5】:这对我有用:
删除 .firebase 文件夹 删除 .firebaserc 删除 firebase.json现在运行如下:
$ firebase init hosting
? File build/web/index.html already exists. Overwrite? No
$ firebase deploy --only hosting
【讨论】:
【参考方案6】:检查终端上的路径。如果问题仍然存在,则删除 firebase 自动创建的文件夹并部署项目
【讨论】:
【参考方案7】:配置为单页应用(将所有 url 重写为 /index.html)?不 ?使用 GitHub 设置自动构建和部署?没有
写了 public/404.html ?文件 public/index.html 已经存在。覆盖?没有此错误是由您网站文件夹的公共文件夹中的 index.html 生成的。
【讨论】:
以上是关于Firebase 托管在部署 Angular 6 应用程序后显示欢迎页面?的主要内容,如果未能解决你的问题,请参考以下文章
在 Firebase 上部署 Angular 8 Universal (s-s-r) 应用程序