本文介绍了SSR 构建中的 Angular 设置 html lang 属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时删除!!

我如何设置 html lang 属性,例如 在服务器端渲染的 html 中?在客户端我可以订阅 onLangChange 并在下面的代码中设置属性,但是如何访问服务器端的 html 元素?

How do I set html lang attribute e.g. <html lang="en"> in server-side-rendered html?on client I can subscribe to onLangChange and set attribute in the code below, but how do I access html element on server side?

this.renderer.setAttribute(document.body.parentNode, "lang", lang.toLowerCase());

推荐答案

截至目前,我最终得到了这个解决方案:

as of now I ended up with this solution:

main.server.ts 我编辑了 createServerRenderer() 方法来拦截 html 作为字符串返回并替换 <html.就我而言,每个语言都映射到单独的域,因此我按域确定当前语言

in main.server.ts I edited createServerRenderer() method to intercept html returned as string and just replaced <html with <html lang="xx". in my case each lang mapped to separate domain so I determine current language by domain

let promise = renderPromise.then(html => {
    return { html: html.replace("<html", `<html lang="${currentLanguage}"`) };
});

这篇关于SSR 构建中的 Angular 设置 html lang 属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

1403页,肝出来的..

09-06 12:36