Ресурсы Grails не работают с выпуском CKEditor (4.5.5+)

Я не могу получить приложение 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 Плагин неправильно заменяет ссылку на файл изображения (фактически, все, кроме первой) на URL-адрес "resource:/...", который не должен быть там, и, следовательно, в консоли. Любопытно, что таким образом изменяются только файлы 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 в целом просто разрушает другие плагины.

1 ответ

Решение

Возможное решение (рекомендованное коллегой) состоит в том, чтобы исключить определенные файлы CSS из обработки grails resources:

resource url:"thirdparty/ckeditor/skins/moono/editor.css", exclude: "*"

Это позволяет избежать влияния на другие файлы, которые не были затронуты обновленным CKEditor или получили пользу от обработки, выполняемой grails resources,

Другие вопросы по тегам