Я не могу получить приложение Grails 2.5.2, использующее подключаемый модуль ресурсов для обработки изменения очистки кеша, внесенного в CKEditor. Плагин ресурсов настроен следующим образом:
grails.resources.adhoc.patterns = ['/js/*', '/images/*', '/css/*', '/plugins/*', '/thirdparty/*', '/templates/*']
grails.resources.adhoc.includes = ['/js/**', '/images/**', '/css/**', '/plugins/**', '/thirdparty/**', '/templates/**']
Код CKEditor находится под app-dir/web-app/thirdparty/ckeditor
и в настоящее время имеет версию 4.5.9. Изменение очистки кеша было сделано в версии 4.5.5, а версия 4.5.4 отлично работает с Grails resources
.
Я получаю следующую ошибку в консоли при запуске приложения с 4.5.9:
GET resource:/thirdparty/ckeditor/skins/moono/icons.png?t=a35abfe net::ERR_UNKNOWN_URL_SCHEME
Похоже, что плагин resources
плохо справляется со значениями в файле editor.css ckeditor (файл, обслуживаемый приложением, указывает на app-dir/thirdparty/ckeditor/skins/moono/editor.css?t=G4CD
как http://localhost:8080/app-dir/static/thirdparty/ckeditor/skins/moono/editor.css?t=G4CD
). Если я посмотрю на этот файл напрямую, он содержит следующее для файлов icons.png и icons_hidpi.png, что указывает на то, что плагин resources
неправильно заменяет ссылку на файл изображения (фактически все, кроме первого) на «resource:/. .." URL-адрес, которого не должно быть, и, следовательно, ошибка консоли. Любопытно, что только файлы icons.png и icons_hidpi.png с их параметром t изменяются таким образом, другие файлы изображений в том же файле editor.css
остаются нетронутыми.
.cke_button__bold_icon {background: url(icons.png?t=a35abfe) no-repeat 0 -0px !important;}
.cke_button__italic_icon {background: url(resource:/thirdparty/ckeditor/skins/moono/icons.png?t=a35abfe) no-repeat 0 -24px !important;}
.cke_button__strike_icon {background: url(resource:/thirdparty/ckeditor/skins/moono/icons.png?t=a35abfe) no-repeat 0 -48px !important;}
.cke_button__subscript_icon {background: url(resource:/thirdparty/ckeditor/skins/moono/icons.png?t=a35abfe) no-repeat 0 -72px !important;}
Если я добавлю следующую конфигурацию, приложение будет работать и отображаться отлично.
grails.resources.processing.enabled = false
Если я использую
grails.resources.mappers.cssrewriter.excludes = ['/thirdparty/ckeditor/skins/moono/**']
в попытке предотвратить изменение resources
файла ckeditor's editor.css
ничего не меняется.
Что я могу сделать? Я не могу оставить ckeditor на 4.5.4, так как есть взаимодействие с ним, которое я пытаюсь исправить. Я уже использую ту же конфигурацию как рекомендовано в другом посте, но это не решает проблему. Полное отключение перезаписи css просто ломает другие плагины .