问题描述
我如何设置 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 属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!