我尝试在textarea元素上使用Tinymce插件:
<textarea id="reportDescription" name="reportDescription" class="form-control" rows="4"></textarea>
我正在使用Symfony和Webpack Encore。所以我使用以下命令安装了这个包:
yarn add tinymce
在webpack.config.js中,我编写了以下代码:
.copyFiles({
from: 'node_modules/tinymce/skins',
to: 'skins/[path]/[name].[ext]'
})
在.js中,我试图初始化插件:
require('tinymce');
$(document).ready(function () {
if($("#reportDescription").length > 0){
tinymce.init({
selector: "textarea#reportDescription"
});
}
});
当我在浏览器上加载我的页面时,我得到这个错误:
tinymce.js:4680
GET http://url/build/models/dom/model.js net::ERR_ABORTED 404 (Not Found)
tinymce.js:18181
Failed to load model: dom from url models/dom/model.js
tinymce.js:4680
GET http://url/build/icons/default/icons.js net::ERR_ABORTED 404 (Not Found)
tinymce.js:18181
Failed to load icons: default from url http://url/build/icons/default/icons.js
tinymce.js:4680
GET http://url/build/themes/silver/theme.js net::ERR_ABORTED 404 (Not Found)
tinymce.js:18181
Failed to load theme: silver from url themes/silver/theme.js
我还不太明白如何在webpack上使用模块。如何导入它们,何时使用require或import以及它们之间的区别。也许我错过了一些重要的东西。
2条答案
按热度按时间rta7y2nd1#
我设置如下
1.在webpack.config.js中
1.我使用stimulusjs,所以在刺激控制器(tiny_controller.js)中,我有下面的代码,以便所有tinymce类的文本区域都将匹配
最后,在HTML表单中,它可能是这样的
55ooxyrt2#
虽然@帕特里克Kenekayoro发布了一个非常好的答案,但在您的场景中,问题在于路径。正如你所注意到的,它会查找
/build/models/...
,所以要解决这个问题,只需将下面的代码复制/粘贴到你的webpack配置中:这对我来说真的很好,即使在最新的Symfony项目。