angular - Angular Universal,在 Firebase 上用于静态页面的应用程序?
问题描述
相关背景:我是初学者。
我目前的申请:
- 是 Angular 7,
- 托管在 GitHub Pages 上,
- 由一个实际上需要 Angular 功能的页面(主页——一个计算器)和几个基本上只是静态 HTML 的页面组成。(每个这样的页面当前都是一个 Angular 组件。)
我最近才意识到 Google 无法“看到”其他页面上的任何内容。我认为这是因为 GitHub Pages 基本上会接受每个请求并重定向到主页,但我这里的理解可能存在缺陷。
我在最后一天左右一直在阅读这个,我想我已经了解到:
- Angular Universal 可用于将静态页面呈现为常规 HTML,以便 Googlebot 可以看到它们,并且
- Angular Universal 不能与 GitHub Pages 一起使用。
我的问题:
1) Angular Universal 是这里最好的解决方案吗?我一直在读到 Angular Universal 很难实现,并且不能很好地处理各种事情。还有什么我应该研究的吗?(优先事项是易于实施。)
2) 如果我实现 Angular Universal,Firebase 是否适合托管应用程序?
感谢您的任何输入/反馈。
解决方案
经过几天的反复试验和谷歌搜索,我偶然发现了这个过程。所以我只是想我会分享我遵循的步骤,以防其他人将来遇到这个线程。
首先,我按照@AlexanderStaroselsky 的建议与另一家公司建立了托管关系。(我选择了 a2hosting,尽管我没有理由认为它们比其他提供商更好。)
我首先按照本教程中的步骤操作:
https ://medium.com/@MarkPieszak/angular-universal-server-side-rendering-deep-dive-dc442a6be7b7
然后我按照这里的步骤,创建 prerender.ts 文件等等:
https ://github.com/angular/angular/issues/23024#issuecomment-446205508
然后我得到一个错误:“找不到模块...... ngfactory。” 因此,经过一番搜索,我对此处所示的 app.server.module 进行了更改:
https ://medium.com/@suman.g/great-article-worked-like-charm-21673f8b6f80
然后我编辑了 tsconfig.server.json 以包含有关“commonjs”的行,如下所示:
https ://github.com/angular/universal-starter/blob/master/src/tsconfig.server.json
最后,我将 dist/browser 目录中的所有内容(仅此而已)上传到我的主机。(对于a2托管,我把它放在public_html目录中。)
推荐阅读
- selenium - 如何在单击添加按钮时使用 Selenium 将登录 ID 和密码传递给 Chrominum 弹出验证器
- python - 在python中从RAM中读取数据
- javascript - 输入未存储在数据库中
- c++ - 在linux中运行cpp程序时如何获取关键事件?
- graphql - Apollo Client TypeError: Object is not function
- c# - 在 c# 中使用 rsa 私钥对字符串进行签名并使用 openSSL 进行验证
- python - Python - 来自 pyodbc 的字典返回类型错误的结果
- php - php 错误提示“file_put_contents () 无法打开流”
- mysql - 获取每个子角色的“用户”
- log4j - 为什么 log4j2 在使用 %replace 时会打印双堆栈跟踪?