gpt4 book ai didi

grails - Grails Asset Pipeline:在CSS中重新计算URL引用失败

转载 作者:行者123 更新时间:2023-12-02 14:50:51 25 4
gpt4 key购买 nike

让我给出一些背景。我们的grails-app / assets文件夹如下所示

grails-app
-- assets
----stylesheets
------parent.css
------somefolder
---------child.css
----fonts
------HelveticaNeue-Light.otf

我创建了一个FontAssetFile.groovy
package app.asset

import java.util.regex.Pattern

class FontAssetFile extends asset.pipeline.AbstractAssetFile {
static final List<String> contentType = ['font/opentype']
static List<String> extensions = ['otf']
static String compiledExtension = 'otf'
static processors = []
Pattern directivePattern = null

public String directiveForLine (String line) { line }
}

parent.css的内容是
/*
*= require somefolder/child
*= require_self
*/

child.css的内容是
@font-face {
font-family: "Helvetica Neue Light";
src: url('../HelveticaNeue-Light.otf');
}

当我在开发环境中运行该应用程序时,该代码可以引用字体文件,因为浏览器会请求 127.0.0.1:8080/app/assets/somefolder/child.css
但是当我在生产环境中运行该应用程序时,该代码无法引用字体文件,因为浏览器现在请求 127.0.0.1:8080/app/assets/parent.csschild.css文件已被编译为一个文件,并且文件内容不在parent.css中
这意味着浏览器认为字体文件在资源文件夹之外,因为parent.css内容是
@font-face {
font-family: "Helvetica Neue Light";
src: url('../HelveticaNeue-Light.otf');
}

从文档 http://bertramdev.github.io/asset-pipeline/guide/usage.html#linking
我可以看到“....如果使用相对路径,则 Assets 管道可以理解该路径,并且可以根据可能需要CSS的任何根文件来重新计算新的相对路径”
但是,当代码引用child.css文件中的url时,情况似乎并非如此。

我需要能够在开发和生产环境中引用字体文件。
我曾考虑过在生产中禁用编译功能,但是服务器将为每种 Assets 提供单独的文件。我认为这不是最佳选择。

最佳答案

请升级到最新版本的插件,该插件已修复此重新计算的网址(1.9.9)现在已经比较旧了

关于grails - Grails Asset Pipeline:在CSS中重新计算URL引用失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30453101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com