【问题标题】:Rails / Webpack: TinyMCE cannot load skins (404 (Not Found))Rails / Webpack:TinyMCE 无法加载皮肤(404(未找到))
【发布时间】:2025-11-24 04:00:01
【问题描述】:

我正在处理一个一直在使用资产管道的 Rails 项目,但我们目前正在尝试过渡到 webpack。我在尝试让 TinyMCE 通过纱线后工作时遇到了一个问题 - 文本编辑器根本无法加载。

过渡到 webpack 之前

最初我在 application.html.haml 中使用了 CDN,一切正常:

%script{src: 'https://cloud.tinymce.com/stable/tinymce.min.js?apiKey=gexncjni90zx3qf0m5rr7kl8l40wd5yuly2xjza0g3kwrljt'}`

过渡后

我通过yarn安装了包: $ yarn add tinymce

我还有我的 tinyMce.js 文件(函数本身没有改变):

import tinymce from 'tinymce/tinymce';
import 'tinymce/themes/modern/theme';
import 'tinymce/plugins/lists';
import 'tinymce/plugins/table';

function tinyMce() {
    $(document).on('turbolinks:load', function () {
        tinyMCE.remove();
        tinyMCE.init({
            selector: 'textarea.tinymce',
            plugins: [
                'table', 'lists'
            ],
        });
    });
}

export { tinyMce };

在我的 application.js 中:

import { tinyMce } from "../vendor/tinyMCE/tinyMce";

由于 TinyMCE 没有皮肤就无法工作,我跟着 documentation 跑了

$ cp -r node_modules/tinymce/skins skins

但是控制台中的错误没有得到解决:

我尝试将skins 文件夹直接放在根目录中,放在位于根目录中的packs 文件夹中和javascript/packs 中,但即使我尝试指定skin_url,错误仍然存​​在。

一般说明

  • Webpack 本身运行良好,包括自定义脚本和导入包(使用 typed.js 测试)。
  • tinymce 似乎也在加载 - 之前我在控制台中遇到了更多关于 tablelists 插件的错误,但在将 2 个导入行添加到 tinyMce.js 后这些错误就消失了。

关于我可能遗漏的任何提示?

【问题讨论】:

  • 我很好奇您为什么必须从 CDN 切换。云脚本是否仍然无法交付编辑器?
  • 另外,当你使用 skin_url 时,你使用的路径是什么。
  • @RobQuan 从 CDN 切换的要点是保持事物的凝聚力,并且由于我们开始使用 webpack,理想情况下所有外部库都将从那里提取。我现在让它工作了(见下面的答案),但尽管一切正常,但我在控制台中遇到了错误。

标签: ruby-on-rails npm webpack tinymce


【解决方案1】:

我设法通过将这两行添加到我的 tinyMce.js 文件中来使其工作:

import 'tinymce/skins/lightgray/content.min.css';
import 'tinymce/skins/lightgray/skin.min.css';

此时文本编辑器按预期工作,但是我在控制台中收到以下错误:

通过将skin: false 添加到我的tinymce.initsetup 解决了这个问题。

【讨论】: