使用Grails资源插件1.2.7破坏的CSS文件中的URL

Pet*_*ter 16 css grails grails-resources-plugin

最近将grails项目升级到2.3.7并将其插件升级到最新版本,这使得Resources插件达到了1.2.7.这适用于Grails 2.1.2和资源插件1.2RC3,但现在它不是:

每当我有一个css文件通过这样的URL引用某些东西

.checkbox-input-wrap.checked {
  background-image: url(/img/uniform-assets/checkbox.png);
}
Run Code Online (Sandbox Code Playgroud)

在网页上它会导致此错误(它在URL的前面留下'资源:/')

GET资源:/img/uniform-assets/checkbox.png net :: ERR_UNKNOWN_URL_SCHEME

dma*_*tro 24

据此前我的意见,这不是我的问题,因为默认情况下,所有的资源下/images,/css并且/js正在担任Grails的即席资源,我用测试.png的文件images.

我再次从我的同事那里看到了这个问题,让我三思而后行.:)在他的情况下,他试图访问/fonts应用程序中使用的插件提供的字体.

在尝试以下答案之前,我尝试通过添加以下配置来禁用css重写:

//Not required
//grails.resources.rewrite.css = false
Run Code Online (Sandbox Code Playgroud)

但是当我处理font资源时,对我来说没有任何意义.

最终,这将作为部分Config.groovyfonts取得的伎俩.对于您的情况,您需要执行以下操作:

grails.resources.adhoc.includes = ['/img/**']
//If resource served from a plugin
//grails.resources.adhoc.includes = ['/plugins/**', '/img/**']
Run Code Online (Sandbox Code Playgroud)

如果您已经拥有此配置,它将类似于:

grails.resources.adhoc.includes = [
    '/images/**', '/css/**', '/js/**', '/img/**'
]
Run Code Online (Sandbox Code Playgroud)

但正如我所说,您可能不需要为grails应用程序中的现有资源添加adhoc包含.

先继续

  • grails clean (更安全的一面)
  • grails run-app.
  • 清理浏览器缓存(如果使用Chrome,我更喜欢Chrome中的隐身模式)
  • 点击应用网址

它不应该再抱怨资源了.