Grails 2.3将css font-face url更改为"resource:/ ..."

mat*_*ejk 9 css grails fonts font-face grails-2.3

我想在我的CSS中包含一个自定义字体,如下所示:

@font-face
{
    font-family: TheFont;
    src: url(fonts/SourceSansProLight.ttf);
}
Run Code Online (Sandbox Code Playgroud)

CSS与Grails 2.3一起提供,CSS被修改成为这个

@font-face
{
    font-family: TheFont;
    src: url(resource:/css/fonts/fonts/SourceSansProLight.ttf);
}
Run Code Online (Sandbox Code Playgroud)

生成的字体url方案未知,浏览器无法打开该文件.例如,Chrome报道:

GET resource:/css/fonts/fonts/SourceSansProLight.ttf net::ERR_UNKNOWN_URL_SCHEME 
Run Code Online (Sandbox Code Playgroud)

/ css/fonts也被添加到原始URL之前.

如何指示Grails完全保留字体URL?

mat*_*ejk 14

解决方案是在Config.groovy中禁用CSS处理:

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

我在Grails邮件列表上找到了如何做到这一点的提示.


小智 6

我认为更好的解决方案是由dmahapatro提出的:https://stackoverflow.com/a/22849288/2286664

您需要确保Resources插件已知您的字体文件.

以下内容适用于我Config.groovy,根据您的路径进行调整:

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

grails clean进行此更改后,您需要运行.