在laravel中的db中显示summernote中的图像

Posted

技术标签:

【中文标题】在laravel中的db中显示summernote中的图像【英文标题】:Display images inside summernote from db in laravel 【发布时间】:2020-11-29 03:48:39 【问题描述】:

我正在开发一个 laravel 项目,该项目应该从数据库中获取主页内容(html 内容)并将其显示在 Summernote 富文本编辑器中。 Summernote 可以很好地显示我的 HTML 内容,但不显示图像。在检查summernote中显示的代码时,它已将/字符替换为“”。如果直接粘贴在 textarea 中而不是从 dB 中获取,则会显示相同的图像。我尝试了一些在网上和 *** 上找到的解决方案,但它们对我不起作用。

 $(document).ready(function() 
  $('#summernote').summernote(
      
        tabsize: 2,
        height: 400
      );
);
<form method="post">
                <div>
                    <textarea class="summernote" id="summernote" name="editordata"><div class="row-iconbox our-support-block">
                  !!$cms_home->homepage_content!!
                    </textarea>
                </div>
</form>

【问题讨论】:

【参考方案1】:

深入挖掘 / 字符被 "" 替换,mysql 在存储或更新时将 \ 放在每个 " 之前,因此在从数据库加载 HTML 内容时找不到图像地址。

示例 HTML

<img src="/storage/img/icon1.svg"  />

以 dB 存储后的 HTML 内容

<img src=\"/storage/img/icon1.svg\" width=\"100\" height=\"100\" />

解决方案

1.检查 UTF 编码

在终端打开Mysql,将DATABASE_NAME、TABLE_NAME分别替换为你的db_name和table_name。

SELECT CCSA.character_set_name FROM information_schema.`TABLES` T,information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA WHERE CCSA.collation_name = T.table_collation AND T.table_schema = "DATABASE_NAME" AND T.table_name = "TABLE_NAME";

2。如果Encoding不是utf8,把数据库和表改成utf8编码

see how to do this

3.将此代码以 HTML 格式添加到您的 &lt;head&gt;

 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

【讨论】:

以上是关于在laravel中的db中显示summernote中的图像的主要内容,如果未能解决你的问题,请参考以下文章

如何在laravel上显示summernote存储的数据?

Laravel 5 和 Summernote - 上传的图片未显示

从 Mysql DB 检索后,summernote 显示 html 代码

文本未从 Laravel 中的 Summernote 存储

如何在 laravel 5 中插入和更新图像 Summernote

在 Laravel 5 中链接 Css 和 Js 文件 Summernote 资产的正确方法