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 项目

在 Firebase 上部署 Angular 8 Universal (s-s-r) 应用程序

将环境变量部署到 Firebase 托管

Firebase 托管 - 强制浏览器在新部署时重置缓存?

如何在 Firebase 托管上部署 next.js 应用程序?

尝试在托管 Web Flutter 应用程序的 Firebase 中部署