You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue项目中TinyMCE部署到服务器报skins相关ERR_ABORTED 404错误

问题根因

本地开发环境会直接读取node_modules目录下的文件资源,所以路径解析不会出错。生产打包时,你使用的长相对路径导入node_modules内资源的写法,会导致打包工具无法正确识别TinyMCE依赖的皮肤、主题、插件等非JS静态资源的输出路径,TinyMCE运行时找不到对应资源就会抛出错误。

修复步骤

  • 第一步:修改导入写法,取消长相对路径,改用简写导入核心依赖,其余静态资源不需要通过import引入:
import Editor from "@tinymce/tinymce-vue";
import "tinymce/tinymce";
  • 第二步:配置打包工具的静态资源拷贝规则,将TinyMCE所需的静态资源直接拷贝到打包后的输出目录。以vue-cli2/vue-cli3项目为例,修改vue.config.js配置:
const path = require('path')
const CopyWebpackPlugin = require('copy-webpack-plugin')

module.exports = {
  configureWebpack: {
    plugins: [
      new CopyWebpackPlugin([
        {
          from: path.resolve(__dirname, 'node_modules/tinymce/skins'),
          to: 'tinymce/skins'
        },
        {
          from: path.resolve(__dirname, 'node_modules/tinymce/themes'),
          to: 'tinymce/themes'
        },
        {
          from: path.resolve(__dirname, 'node_modules/tinymce/plugins'),
          to: 'tinymce/plugins'
        },
        {
          from: path.resolve(__dirname, 'node_modules/tinymce/icons'),
          to: 'tinymce/icons'
        }
      ])
    ]
  }
}

如果你的项目使用vite构建,安装vite-plugin-static-copy插件后做对应拷贝配置即可。

  • 第三步:在TinyMCE的初始化配置中指定资源加载路径:
editorConfig: {
  // 其他原有配置保留
  base_url: '/tinymce', // 如果项目部署在域名子目录,需要加子目录前缀,如 /admin/tinymce
  skin_url: '/tinymce/skins/ui/oxide',
  content_css: '/tinymce/skins/content/default/content.min.css',
}
  • 第四步:如果打包后还是出现路径404,检查部署环境的静态资源访问权限,确认tinymce目录下的文件都被正常上传到了服务器对应的静态资源目录。

内容的提问来源于stack exchange,提问作者ardabzlk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 11:57:02