angular要做seo目前只能用ssr,17版本之前有个叫universal的东西其实也是ssr。这玩意说实话有点鸡肋,但要做seo目前只有这一种方案。
相比而言vue能更灵活一些,除了ssr还可以用vite-plugin-prerender插件对网页进行预渲染,会把网页提前静态化,客户端请求的都是静态网页,这样就可以避免占用服务器资源。而ssr则不然,必须要开一个express服务才行。
angular的ssr安装比较麻烦,老版本不兼容,所以只能升级到最新的angular版本,注意node也要用nvm安装最新的稳定版。
1、生成angular项目
npm i @angular/cli
npx ng new myapp
cd myapp
npx命令可以帮我们避免使用-g全局安装。看了一下目前angular最新版本是18,angular中文网应该是许久没更新了,给的还是universal配置方案,注意别按那个搞,已经过时了。
2、安装ssr
npx ng add @angular/ssr --skip-confirmation
ng add这个命令比较屌,可以帮我们做很多事情,新增文件、修改配置文件等工作一应都帮我们做完了,纯傻瓜一键式操作。

3、安装express-engine
npm install @nguniversal/express-engine --force
不加--force强制安装会报错,加了就是一堆警告,只要能跑起来就行。

4、运行
npm run build
npm run serve:ssr:myapp
ssr是在node端渲染页面,肯定就没有window、document这些玩意了。服务起来后,我们可以打开浏览器右键源代码对比一下,ssr渲染的页面是完整的,而客户端渲染的则是空的,是靠js动态加载的,所以蜘蛛抓不到。
网友评论