有人可以解释为什么我需要节点并表达以预渲染Angular应用吗?

时间:2019-05-24 14:11:40

标签: angular apache express seo prerender

我很难为某些Angular 6+网站实施预渲染。 我已经阅读了很多有关此问题的文章。我的主要问题是我无法(现在被允许)安装节点,表达并使其正确。我什至不能使用prerender.io,因为未启用Apache的mod_proxy,并且永远不会启用。是的,只有Apache安装了。

我已经在本地计算机上创建了一个node.js应用程序,该应用程序仅将请求发送到https://render-tron.appspot.com/,并将渲染的文件保存在项目的dist/render文件夹中。

是否可以简单地告诉漫游器和爬虫从该目录加载文件? (所有这些仅使用.htaccess

我的意思是

IS BOT?
VISITS URL                |  LOAD CONTENT FROM
http://example.com        -> http://example.com/render/index.html
http://example.com/page2  -> http://example.com/render/page2.html

But consider content from static files, as content from the URL it's visited.

不会被认为是伪装吗? 啊,尚未启用mod_proxy的apache。

当我对此问题感到恼火时,在我的情况下,我并不真正理解使用节点和表达进行预渲染的意义。不仅提供静态文件的速度要比每次在服务器上请求并重新渲染都快?

添加:

角度通用也不行。

1 个答案:

答案 0 :(得分:0)

您必须区分预渲染和服务器端渲染。

使用服务器端呈现,每当请求到达您的Web服务器时,该请求就会传输到通用服务器,以便动态生成html内容并将其返回给客户端。

使用预渲染(对于数据变化不太频繁的网站最有用),您可以在部署结果html页面之前为所有(或某些)网站页面渲染html。到网络服务器

如果只需要预渲染,则可以在开发机上安装nodejs和epxress juste,预生成所有路由的html,并将生成的html复制到仅安装Web服务器的托管服务器上(Apache,Nginx等)

如果您提供的内容经常更改,或者取决于用户的个人资料(是否登录,...),那么最好使用服务器端呈现