当我尝试使用NPM将CKEDITOR包含到我的新Laravel 5.5项目中时,我在Chrome控制台中收到以下错误(使用laravel Valet作为local.dev):
app.js:16991 GET https://local.dev/chart/config.js?t=H7HG
app.js:16991 GET https://local.dev/chart/skins/moono-lisa/editor.css?t=H7HG
app.js:16991 GET https://local.dev/chart/lang/en.js?t=H7HG
我的Laravel Mix设置如下所示:
mix.js('resources/assets/js/app.js', 'public/js')
.babel(['resources/assets/js/libraries/*.js'], 'public/js/vendor.js')
.version();
我的CKEDITOR安装位于:
/vendor/ckeditor/ckeditor
我可以在网站加载时访问CKEDITOR实例.但是,如上所示,当我导航到https://local.dev/chart时,CKEDITOR现在查找配置,皮肤和lang文件,其中/ chart附加到它的基路径.
我做了一些研究,发现了一些相关的问题,并且能够成功地使用asset()更改base_path.相关的stackOverflow问题可以在here和here找到.
我想做的是通过NPM拉CKEDITOR,使用Laravel Mix来组合,版本和缩小我的脚本(一个用于供应商库,一个用于我的特定于应用程序的JS),然后将这两个.js文件输出到这些laravel app中的目录:
/public/js/vendor.js
/public/js/app.js
Laravel mix生成这两个文件,构建成功,所有其他库都可以很好地运行.然而,CKEDITOR丢失它的基本路径并抛出错误寻找皮肤/ langs / config.js – 任何想法如何调整CKEDITOR的basePath指向供应商文件,以便它将停止扼杀这些错误并正常工作?
提前感谢您提供的任何帮助!
最佳答案 对于那些和我有同样问题的人,我找到了一个不涉及修改CKEDITOR的工作:
使用Webpack复制所需的CKEDITOR文件:
.copy('node_modules/ckeditor/config.js', 'public/js/ckeditor/config.js')
.copy('node_modules/ckeditor/styles.js', 'public/js/ckeditor/styles.js')
.copy('node_modules/ckeditor/contents.css', 'public/js/ckeditor/contents.css')
.copyDirectory('node_modules/ckeditor/skins', 'public/js/ckeditor/skins')
.copyDirectory('node_modules/ckeditor/lang', 'public/js/ckeditor/lang')
.copyDirectory('node_modules/ckeditor/plugins', 'public/js/ckeditor/plugins')
然后,在页面正文中添加:
<script> var CKEDITOR_BASEPATH = '/js/ckeditor/'; </script>
这将允许CKEDITOR找到所需的文件.这对我来说有点难看,所以也许有更好的方法来做到这一点 – 如果有的话,请让我知道并回答这个问题.