我无法使用资源插件获取Grails 2.5.2应用程序来处理cache-busting change made to 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
插件无法很好地处理ckeditor的editor.css文件中的值(应用程序提供的文件指向app-dir/thirdparty/ckeditor/skins/moono/editor.css?t=G4CD
为http://localhost:8080/app-dir/static/thirdparty/ckeditor/skins/moono/editor.css?t=G4CD
)。如果我直接查看此文件,它包含以下for 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,因为我正在尝试修复它与它的交互。我已经使用了相同的配置as recommended in another post,但这并不能解决问题。 Disabling css rewriting altogether只是破坏了其他插件。
答案 0 :(得分:1)
最终解决方案(由同事推荐)是排除grails resources
处理特定CSS文件:
resource url:"thirdparty/ckeditor/skins/moono/editor.css", exclude: "*"
这可以避免影响未受升级的CKEditor影响的其他文件,或者受益于grails resources
完成的处理。