gpt4 book ai didi

使用 Nginx 和 Docker 的 Angular 4 SEO

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:42:50 24 4
gpt4 key购买 nike

我有一个与 Angular 4 的 SEO 相关的相当普遍的问题。我读到了有关爬行 SPA 的问题,而另一方面,人们声称 Google 根本没有问题。在我使用基于 Nginx 和 Docker 构建的生产设置的背景下,我想知道最好的策略是什么。我想回答以下问题:

1)我听说过用于服务器端渲染的 Angular Universal,但我想这种方法一定要使用 express-server 包?我使用 Nginx,它对生产有影响吗?我将如何使用 docker 进行设置?

2) 或者,我听说可以使用 prerender与 Nginx 和 Docker(仅用于爬虫的预渲染器)一起使用。这适合 Angular 4 吗?在我看来,这将是最直接的方式......

3) 是否有必要预渲染页面?当今 SEO 的主要驱动因素是什么? Google 真的有能力抓取 SPA 吗? AFAIK,元标签不再有那么大的影响......

谢谢大家

最佳答案

Angular Universal 不受限于表达,您可以渲染到任何您想要的输出(文件、流等)。

下面是一个直接渲染到文件的例子:

import 'reflect-metadata';
import 'zone.js/dist/zone-node';
import { renderModuleFactory } from '@angular/platform-server';
import { enableProdMode } from '@angular/core';
import { join } from 'path';
import { readFileSync, writeFileSync, mkdirSync } from 'fs';

enableProdMode();

const DIST_FOLDER = join(process.cwd(), 'dist');

const template = readFileSync(join(DIST_FOLDER, 'browser','index.html')).toString();
const { AppServerModuleNgFactory } = require('main.server');


renderModuleFactory(AppServerModuleNgFactory, { document: template, url: '/' })
.then(html => {
writeFileSync(join(DIST_FOLDER, 'browser', 'index.html'), html);
}
);

生成的 index.html 包含 HTML,否则这些 HTML 将在浏览器中以 Angular 生成,搜索爬虫比必须自己呈现页面更容易获取。尽管 google 最有可能做到这一点,但其他人则不能 - 您的网页排名将受到您网站的抓取效率的影响。

关于使用 Nginx 和 Docker 的 Angular 4 SEO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48118318/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com