Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular Universal,在Firebase上,用于具有静态页面的应用程序?_Angular_Angular Universal - Fatal编程技术网

Angular Universal,在Firebase上,用于具有静态页面的应用程序?

Angular Universal,在Firebase上,用于具有静态页面的应用程序?,angular,angular-universal,Angular,Angular Universal,相关背景:我是个初学者 我目前的申请: 角度为7 托管在GitHub页面上 由一个页面(主页——一个计算器)组成,实际上需要角度功能,再加上几个基本上只是静态HTML的页面。(每个这样的页面当前都是一个角度组件。) 我最近才意识到谷歌无法“看到”其他页面上的任何内容。我认为这是因为GitHub页面基本上接受每个请求并重定向到主页,但我的理解可能有缺陷 我已经读了大约一天了,我想我已经了解到: Angular Universal可用于将静态页面呈现为常规HTML,以便Googlebot可以看到它们

相关背景:我是个初学者

我目前的申请:

  • 角度为7
  • 托管在GitHub页面上
  • 由一个页面(主页——一个计算器)组成,实际上需要角度功能,再加上几个基本上只是静态HTML的页面。(每个这样的页面当前都是一个角度组件。)
  • 我最近才意识到谷歌无法“看到”其他页面上的任何内容。我认为这是因为GitHub页面基本上接受每个请求并重定向到主页,但我的理解可能有缺陷

    我已经读了大约一天了,我想我已经了解到:

  • Angular Universal可用于将静态页面呈现为常规HTML,以便Googlebot可以看到它们,以及
  • Angular Universal不能与GitHub页面一起使用
  • 我的问题是:

    1) 角度普适性是这里的最佳解决方案吗?我一直在读到Angular Universal很难实现,而且不能“很好地”处理各种事情。还有什么我应该调查的吗?(优先事项是易于实施。)

    2) 如果我实现Angular Universal,Firebase是否适合作为应用程序的宿主


    感谢您的意见和反馈。

    经过几天的反复尝试和谷歌搜索,我在这个过程中步履蹒跚。所以我只是想分享一下我所遵循的步骤,以防将来有人遇到这个问题

    首先,按照@AlexanderStaroselsky的建议,我与另一家公司建立了主机托管。(我选择了a2hosting,但我没有理由认为它们比其他提供商更好。)

    我从本教程中的步骤开始:

    然后,我按照这里的步骤创建prerender.ts文件,依此类推:

    然后我得到了一个错误:“找不到模块…ngfactory。”所以在搜索之后,我对app.server.module进行了更改,如下所示:

    然后,我编辑了tsconfig.server.json,将关于“commonjs”的行包括在这里:


    最后,我将dist/browser目录中的所有内容(没有其他内容)上传到主机。(对于a2托管,我将其放在public_html目录中。)

    Firebase静态托管实际上与GitHub页面没有什么不同。您将无法在Firebase状态主机上运行Angular Universal。您需要一种服务器技术来运行Angular Universal。从技术上讲,您可以使用Firebase函数来运行Angular Universal(YouTube上Firebase有一段关于此的精彩视频)。感谢您回复@AlexanderStaroselsky。我在YouTube上找到了Firebase(以下)关于这个主题的视频,但许多评论表明它不再适用于Angular 6(或更高版本)。不幸的是,我的技能还不足以决定如何根据需要进行修改。但是仅仅知道Firebase函数仍然是我需要的(如果使用Firebase的话)是有帮助的。是的,您可能需要设计一个解决方案,使Angular Universal能够在任何类型的无服务器函数中工作,出于成本和其他问题,您可能无论如何都不想这样做。也就是说,有很多节点或C#应用程序托管解决方案可以让您运行Angular Universal。你考虑过使用Angular Universal的官方示例(节点或C#)并将其托管在其中一个平台上吗?@AlexanderStaroselsky我只关注Firebase,因为我在搜索结果中反复看到了这一点。因此,有节点js托管计划的东西(例如,a2hosting.com)最好设置为“开箱即用”,可以这么说吗?是的。这两种方法都有优点和缺点,但imo使用专用的节点托管解决方案会更简单。