新开发的一个程序后台使用了 Tinymce 编辑器作为富文本编辑器,上传的图片 url 都是相对路径,不包含域名,导致小程序端在请求接口后获取的富文本内容无法正确显示图片。
虽然可以让前端写个正则替换一些,但是作为一个负责任的程序员,我觉得还是要后端处理。
其实很简单,在 Tinymce 编辑器中提供了一个配置项 convert_urls:
This option enables you to control whether TinyMCE is to be clever and restore URLs to their original values. URLs are automatically converted (messed up) by default because the browser’s built-in logic works this way. There is no way to get the real URL unless you store it away. If you set this option to false it will try to keep these URLs intact. This option is set to true by default, which means URLs will be forced to be either absolute or relative depending on the state of relative_urls.
通过该选项,你可以控制 TinyMCE 是否会聪明地将 URL 还原到其原始值。默认情况下,URL 会自动转换,因为浏览器的内置逻辑就是这样工作的。除非将其保存起来,否则无法获得真正的 URL。如果将此选项设置为 false,浏览器会尽量保持这些 URL 的原样。该选项默认设置为 true,这意味着 URL 将根据 relative_urls 的状态被强制为绝对或相对 URL。
https://www.tinymce.com/docs/configure/url-handling/#convert_urls
因此在初始化时候,添加这个参数并将值设置为 false 即可。
tinymce.init({
selector: 'textarea',
convert_urls: false //这个参数加上去就可以了
});