求助:Astro站点渲染Contentful数据时显示HTML标签如何解决?
解决Astro渲染Contentful富文本显示HTML标签的问题
你的问题核心是Astro默认会转义插值的字符串内容,所以通过documentToHtmlString转换后的HTML代码会被当作普通文本输出,而非解析渲染。
只需要修改模板中渲染内容的部分,给承载HTML的元素添加set:html指令,让Astro直接注入并解析HTML代码:
<!-- 替换原有的内容渲染代码 --> <div class="content" set:html={content}></div>
修改后的完整模板部分:
<BaseLayout title={title} description={description}> <div class="stack gap-20"> <div class="stack gap-15"> <main class="wrapper"> <div class="stack gap-10 content"> <div class="content" set:html={content}></div> </div> </main> </div> <ContactCTA /> </div> </BaseLayout>
注意:使用set:html时要确保注入的HTML内容来源可信(比如你的Contentful数据),避免跨站脚本攻击(XSS)风险。
内容的提问来源于stack exchange,提问作者Zaki Zakaria
相关产品推荐
相关产品推荐

