Grails 2.3 将 css font-face url 更改为“resource:/...”
Posted
技术标签:
【中文标题】Grails 2.3 将 css font-face url 更改为“resource:/...”【英文标题】:Grails 2.3 changes css font-face url to "resource:/..." 【发布时间】:2014-04-01 02:44:01 【问题描述】:我想在我的 CSS 中包含这样的自定义字体:
@font-face
font-family: TheFont;
src: url(fonts/SourceSansProLight.ttf);
CSS 由 Grails 2.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/fonts 也会添加到原始 URL 的前面。
我如何指示 Grails 将字体 URL 保持原样?
【问题讨论】:
我通常使用相对于 CSS 文件本身的路径 - 例如../images/foo.jpg
.
你也可以试试grails.org/plugin/asset-pipeline插件,它会在后台转换路径
【参考方案1】:
解决方案是在 Config.groovy 中禁用 CSS 处理:
grails.resources.rewrite.css = false
我在Grails mailing list 上找到了如何做到这一点的提示。
【讨论】:
我真的不明白这是做什么的,但我把它放在我的 Config.groovy 中并开始抛出一个奇怪的错误【参考方案2】:我认为dmahapatrohttps://***.com/a/22849288/2286664提出了一个更好的解决方案
您需要确保资源插件知道您的字体文件。
以下内容在我的Config.groovy
中对我有用,请根据您的路径进行调整:
grails.resources.adhoc.includes = [
'/images/**', '/css/**', '/js/**', '/img/**', '/fonts/**'
]
进行此更改后,您需要运行 grails clean
。
【讨论】:
使用完整的 clean/compile/run-app 抛出相同的错误 这最终是比上面列出的更好的答案。希望你的标记是正确的。以上是关于Grails 2.3 将 css font-face url 更改为“resource:/...”的主要内容,如果未能解决你的问题,请参考以下文章
Grails 2.3 IntegrationSpec 不能是事务性错误