日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

tinymce vue 部分工具不显示_tinymce-vue使用问题及解决记录

發(fā)布時間:2023/12/2 vue 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tinymce vue 部分工具不显示_tinymce-vue使用问题及解决记录 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、本地圖片上傳:

1.轉(zhuǎn)成base64,轉(zhuǎn)換后的字符粘貼到notpadd++中看了下,有近20萬個字符,所以直接沒考慮

2.選擇圖片后調(diào)用后臺方法傳到服務器,保存后返回一個網(wǎng)絡地址,傳入success的回調(diào)方法,通過網(wǎng)絡地址的方式顯示。

前端配置代碼如下:

images_upload_handler: (blobInfo, success, failure) => {

if (blobInfo.blob().size > 1048576) {

failure('文件體積過大')

}

// 發(fā)送到后臺,傳送到阿里云oss,返回上傳后的網(wǎng)絡地址

const uploadImgUrl =this.GLOBAL.WebSite + "/article/imgUpload";

var xhr, formData;

//原先用axios發(fā)文件一直不成功,參照官方文檔。。第一次用XMLHttpRequest這鬼東西

xhr = new XMLHttpRequest();

xhr.withCredentials = false;

xhr.open('POST', uploadImgUrl);

formData = new FormData();

formData.append('file', blobInfo.blob());

xhr.onload = function() {

if (xhr.status != 200) {

failure('HTTP Error: ' + xhr.status);

return;

}

const result = JSON.parse(this.responseText);

if (!result || typeof result.value != 'string') {

failure('Invalid JSON: ' + xhr.responseText);

return;

}

// 后臺返回json,對應的值的key是"value",所以這里為result.value

success(result.value);

}

xhr.send(formData);

}

阿里云買了個打折OSS服務器,上傳OSS服務器的后臺代碼如下:

public static void uploadFile(MultipartFile multipartFile, String fileName) {

OSSClient ossClient = new OSSClient(AliyunOssConfig.getEndpoint(),

AliyunOssConfig.getAccessKeyId(), AliyunOssConfig.getAccessKeySecret());

try {

if (!ossClient.doesBucketExist(AliyunOssConfig.getDefaultBucketName())) {

ossClient.createBucket(AliyunOssConfig.getDefaultBucketName());

}

ossClient.putObject(AliyunOssConfig.getDefaultBucketName(), fileName,

multipartFile.getInputStream());

} catch (Exception e) {

logger.error(e,"uploadFile is error.");

} finally {

ossClient.shutdown();

}

}

上傳成功后需要將阿里云OSS的文件獲取路徑返回給前端組件處理。具體格式為:bucketName.endpoint/fileName,

如:http://leslie1015.oss-cn-hangzhou.aliyuncs.com/1234.jpg,前端獲取后傳入success(url),組件將圖片渲染為

package com.leslie.silk.config;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.stereotype.Component;

/**

*阿里云OSS配置

/

@Component

public class AliyunOssConfig {

private static String endpoint;

private static String accessKeyId;

private static String accessKeySecret;

private static String defaultBucketName;

private static String endpointContent;

private AliyunOssConfig() {

}

public static String getEndpoint() {

return endpoint;

}

@Value("${aliyun.oss.endpoint}")

private void setEndpoint(String endpoint) {

AliyunOssConfig.endpoint = endpoint;

}

public static String getAccessKeyId() {

return accessKeyId;

}

@Value("${aliyun.oss.accessKeyId}")

private void setAccessKeyId(String accessKeyId) {

AliyunOssConfig.accessKeyId = accessKeyId;

}

public static String getAccessKeySecret() {

return accessKeySecret;

}

@Value("${aliyun.oss.accessKeySecret}")

private void setAccessKeySecret(String accessKeySecret) {

AliyunOssConfig.accessKeySecret = accessKeySecret;

}

public static String getDefaultBucketName() {

return defaultBucketName;

}

@Value("${aliyun.oss.defaultBucketName}")

private void setDefaultBucketName(String defaultBucketName) {

AliyunOssConfig.defaultBucketName = defaultBucketName;

}

public static String getEndpointContent() {

return endpointContent;

}

@Value("${aliyun.oss.endpointContent}")

public void setEndpointContent(String endpointContent) {

AliyunOssConfig.endpointContent = endpointContent;

}

}

二、桌面端富文本組件正常,移動端不顯示

其實很簡單。。。。愣是搞了半天

F12,切換到移動模式顯示,發(fā)現(xiàn)是mobile/theme.js中的報錯,原來是針對移動端有專門的js文件渲染,在/node_modules/tinymce/themes下存在兩個目錄,分別是silver和mobile,在封裝組件的時候只引用了這個:

import 'tinymce/themes/silver'

加上如下引用:

import 'tinymce/themes/mobile'

手機端即可成功渲染

總結(jié)

以上是生活随笔為你收集整理的tinymce vue 部分工具不显示_tinymce-vue使用问题及解决记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。