Ресурсы 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
,