Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails2.3将css字体面url更改为;资源:/…”;_Css_Grails_Fonts_Font Face_Grails 2.3 - Fatal编程技术网

Grails2.3将css字体面url更改为;资源:/…”;

Grails2.3将css字体面url更改为;资源:/…”;,css,grails,fonts,font-face,grails-2.3,Css,Grails,Fonts,Font Face,Grails 2.3,我希望在CSS中包含自定义字体,如下所示: @font-face { font-family: TheFont; src: url(fonts/SourceSansProLight.ttf); } CSS由Grails2.3提供,CSS被修改为 @font-face { font-family: TheFont; src: url(resource:/css/fonts/fonts/SourceSansProLight.ttf); } 生成的字体url方案未知

我希望在CSS中包含自定义字体,如下所示:

@font-face
{
    font-family: TheFont;
    src: url(fonts/SourceSansProLight.ttf);
}
CSS由Grails2.3提供,CSS被修改为

@font-face
{
    font-family: TheFont;
    src: url(resource:/css/fonts/fonts/SourceSansProLight.ttf);
}
生成的字体url方案未知,浏览器无法打开该文件。例如,Chrome报告:

GET resource:/css/fonts/fonts/SourceSansProLight.ttf net::ERR_UNKNOWN_URL_SCHEME 
/css/字体也在原始URL的前面


如何指示Grails保持字体URL的原样?

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

grails.resources.rewrite.css = false

我在上找到了如何做到这一点的技巧。

我认为,at提出了一个更好的解决方案:

您需要确保资源插件知道您的字体文件

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

grails.resources.adhoc.includes = [
    '/images/**', '/css/**', '/js/**', '/img/**', '/fonts/**'
]

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

我通常使用相对于CSS文件本身的路径-例如
。/images/foo.jpg
。您也可以尝试使用插件,它将转换目录下的路径,并使用完整的clean/compile/run应用程序抛出相同的错误。这最终是比上面列出的更好的答案。我真的不明白这是怎么回事,但我把它放在了Config.groovy中,开始抛出一个奇怪的错误