【问题标题】:Rendering unescaped HTML in an EJS emplate [duplicate]在 EJS 模板中呈现未转义的 HTML [重复]
【发布时间】:2022-01-25 17:05:50
【问题描述】:

我有 mongodb 数据,我正在将其渲染到 foreach 中的 ejs 文件中。

我正在渲染articles,并且架构中有一个名为 Image 的东西。 article.Image 是这样的:

<a href="https://www.amazon.com/Sceptre-27-Inch-Gaming-Monitor-Speakers/dp/B078HSKBG3?crid=3AKNPTD0JV80A&keywords=monitors&qid=1640475680&sprefix=mo%2Caps%2C192&sr=8-3&linkCode=li3&tag=pickitly0f-20&linkId=c181027d5496b428b4a7ef54bfa654f8&language=en_US&ref_=as_li_ss_il" target="_blank"><img border="0" src="//ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B078HSKBG3&Format=_SL250_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=pickitly0f-20&language=en_US" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=pickitly0f-20&language=en_US&l=li3&o=1&a=B078HSKBG3" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />

这是一个html代码块,我想在这里展示一下

                <div class="card-subtitle text-muted mb-2"> 
                    
                    <%= article.Size
                    %> 
                </div>
              <%= article.Image %> 
                <h3> <%= article.Price %> </h3>
            </div>

当我运行代码时,我得到 这而不是显示为图像的代码。如何使数据库中渲染的 html 代码显示为图像而不是文本?

【问题讨论】:

标签: html node.js ejs


【解决方案1】:

使用&lt;%- 代替&lt;%=,这样EJS 就不会转义您的HTML。

<%- article.Image %>

更多信息在这里:https://ejs.co/#docs

另外,我强烈建议不要在您的数据集中包含 HTML。总有一天,您会想要在不只是在网页上下文中的某个地方使用您的数据。将 HTML 保存在模板中,将数据(如图像 URL)保存在数据库中。

【讨论】:

    猜你喜欢
    • 2014-04-14
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    • 2016-09-14
    • 2020-07-13
    • 2021-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多