富文本编辑器里图片上传后无法显示怎么办?
我用 Vue3 + Quill 做了个富文本编辑器,图片上传接口能成功返回 URL,但插入后页面上只显示一个空白占位符,图片根本加载不出来,控制台也没报错,这到底哪出问题了?
我试过直接把返回的 URL 放到 img 标签里是可以正常访问的,说明链接没问题。是不是 Quill 插入图片的方式不对?
<template>
<div ref="editor"></div>
</template>
<script setup>
import { onMounted, ref } from 'vue'
import Quill from 'quill'
onMounted(() => {
const quill = new Quill(ref('editor').value, { theme: 'snow' })
quill.getModule('toolbar').addHandler('image', () => {
// 模拟上传后拿到 url
const imageUrl = 'https://example.com/uploaded.jpg'
quill.insertEmbed(quill.getSelection(), 'image', imageUrl)
})
})
</script>
在你的代码里,插入图片的部分看起来是正确的,但有时候 Quill 需要特定的格式或者转义某些字符。你可以先检查一下 Quill 的文档,看看是否有相关的配置项。
不过,在不改动太多的情况下,你可以尝试这样处理一下:
记得转义 URL 特殊字符,特别是如果 URL 是从用户输入来的。虽然你这里硬编码了 URL,但养成好习惯总是好的。
如果还是不行,可能需要调试一下 Quill 内部是怎么处理插入的图片的,看看有没有被过滤掉或者修改了。有时候 Quill 的默认行为会让人头疼,但大多数情况下,配置一下就能解决。
希望这些建议对你有帮助,加油!