尝试过tinymce和vue-quill-editor,感觉虽然较百度富文本轻量一些,但是还要后端额外写个上传图片的接口,对上传附件和上传本地视频也不太友好,还是选择了百度富文本编辑器——ueditor
在官网下载,最新版就可以,自己选择适合的版本,我选的是php的。
包放在码云了 (无bug的php版本)
第一步
ueditor 文件夹放在vue项目的 /public/static/ 文件夹下
server-ueditor 文件夹放在 服务器上,配置好域名
第二步
server-ueditor/config.json前缀都换成配置好的那个域名
第三步
然后,在浏览器上访问:域名/controller.php,如果返回了这样的,说明配置成功了。
第四步
// 安装插件 vue-ueditor-wrap
npm install vue-ueditor-wrap -S
// 在main.js中
// ueditor 编辑器(全局组件)
import VueUeditorWrap from 'vue-ueditor-wrap'
Vue.component('vue-ueditor-wrap', VueUeditorWrap)
// 在页面中
</template>
<vue-ueditor-wrap v-model="text" :config="myConfig" />
</template>
<script>
export default {
name: 'editor',
data () {
return {
text: "",
myConfig: {
// 编辑器不自动被内容撑高
autoHeightEnabled: false,
// 初始容器高度
initialFrameHeight: 500,
// 初始容器宽度
initialFrameWidth: '80%',
// 上传文件接口(这个地址是我为了方便各位体验文件上传功能搭建的临时接口,请勿在生产环境使用!!!)
serverUrl: '域名/controller.php',
// UEditor 资源文件的存放路径,如果你使用的是 vue-cli 生成的项目,通常不需要设置该选项,vue-ueditor-wrap 会自动处理常见的情况,如果需要特殊配置,参考下方的常见问题2
UEDITOR_HOME_URL: './static/UEditor/'
}
}
}
}
</script>
完成
可以正常使用了,
如果上传图片错误,看一下服务器上保存图片的那几个文件夹权限有没有写入权限,
如果报错跨域",",看nginx是不是设置了跨域了,和controller.php中设置的跨域重复了。去掉其中一个就可以了。
header("Content-Type: text/html; charset=utf-8");
header('Access-Control-Allow-Headers: X-Requested-With,X_Requested_With'); //设置允许的跨域header
header('Access-Control-Allow-Origin:*');