【问题标题】:Grails 2.3 changes css font-face url to "resource:/..."Grails 2.3 将 css font-face url 更改为“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插件,它会在后台转换路径

标签: css grails fonts font-face grails-2.3


【解决方案1】:

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

grails.resources.rewrite.css = false

我在Grails mailing list 上找到了如何做到这一点的提示。

【讨论】:

  • 我真的不明白这是做什么的,但我把它放在我的 Config.groovy 中并开始抛出一个奇怪的错误
【解决方案2】:

我认为dmahapatrohttps://stackoverflow.com/a/22849288/2286664提出了一个更好的解决方案

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

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

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

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

【讨论】:

  • 使用完整的 clean/compile/run-app 抛出相同的错误
  • 这最终是比上面列出的更好的答案。希望你的标记是正确的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-25
  • 2012-10-30
  • 2013-12-13
  • 2020-12-31
  • 2011-03-27
  • 2014-05-09
  • 2011-11-16
相关资源
最近更新 更多