1. 程式人生 > >vue中實現ueditor上傳圖片遇到的幾個問題及解決方案

vue中實現ueditor上傳圖片遇到的幾個問題及解決方案

vue中實現ueditor上傳圖片功能

遇到的問題

  1. 初始化ue元件無法正常顯示,無法載入

  2. 單圖上傳的圖示變灰無法點選 or 多圖上傳顯示後端配置項沒有正常載入,上傳外掛不能正常使用!

  3. 配置上傳介面錯誤,請求報404,無法找到

  4. 上傳後,服務端顯示上傳成功,並返回正確的json結果,但在ueditor中無法回顯圖片並報上傳錯誤

解決方案

  1. ueditor.config.js中配置:

    var URL = window.UEDITOR_HOME_URL || getUEBasePath();之前加上相對於本專案UE(官網下載的資料夾)的位置,如本專案是window.UEDITOR_HOME_URL = '/static/UE/'

    |-- B2B-PC-VUE2
    |   |-- static
    |      |-- UE
    window.UEDITOR_HOME_URL = '/static/UE/';
    var URL = window.UEDITOR_HOME_URL || getUEBasePath();
  2. config.json應動態載入,由服務端返回(根據服務端上傳圖片成功返回圖片url是否完整選擇是否修改config.json中圖片訪問字首)

  3. 由於本專案旨在前後端分離,全部採用介面模式訪問,故在ueditor.config.js配置介面路徑serverUrl時,不應根據專案位置去找controller,而是訪問的介面全路徑,如下:
    http://localhost:3000

    為我本地開啟的node提供的介面服務,按實際修改)

    /**
    * 配置項主體。注意,此處所有涉及到路徑的配置別遺漏URL變數。
    */
    window.UEDITOR_CONFIG = {
    
      //為編輯器例項新增一個路徑,這個不能被註釋
      UEDITOR_HOME_URL: URL
    
      // 伺服器統一請求介面路徑
      , serverUrl: "http://localhost:3000/ue/upload"
  4. 此番斷點到ueditor.all.js檔案中callback回撥方法中iframe值返回正確,但一直取不到body值,上傳返回的json值便放在body中,幫而一直回顯不了,其實圖片已經上傳成功了。這是跨域

    導致的問題,需要使用代理,故在ueditor.config.js配置介面路徑serverUrl時應為代理模式,改為以下介面路徑:
    (注:其中/api是vue專案中使用webpack做的proxy代理)

    /**
    * 配置項主體。注意,此處所有涉及到路徑的配置別遺漏URL變數。
    */
    window.UEDITOR_CONFIG = {
    
      //為編輯器例項新增一個路徑,這個不能被註釋
      UEDITOR_HOME_URL: URL
    
      // 伺服器統一請求介面路徑
      , serverUrl: "/api/ue/upload"