gpt4 book ai didi

grails - Taglib 不处理引用外部文件夹的 CSS

转载 作者:行者123 更新时间:2023-12-02 15:40:55 25 4
gpt4 key购买 nike

从 Grails 2.5 迁移到 Grails 3 时,建议不要使用资源插件,因为不推荐使用后 Grails 3 资源插件。作为替代方案,我使用了 Assets 管道。在迁移到 Assets 管道插件时,是否有推荐的替换资源插件模块的方法?自定义标签用于 GSP 文件,这些文件假定包含 CSS 文件中的内容。目前我正在创建需要模块中资源的空 .js 或 .css 文件,然后替换引用空文件的 CSS 内容。如果有更好的方法来做到这一点?

<html>
<head>
<g:layoutHead/>
<r:layoutResources />
<r:external uri="/css/mycss.css" type="css" />
<g:customStylesheetIncludes/>
</head>
<body>
<g:layoutBody/>
<r:layoutResources />
</body>
</html>

这将由自定义 taglib 处理:
class MyResourcesTagLib {

def customStylesheetIncludes = { attrs ->
def controller = attrs.controller ?: controllerName
def action = attrs.action ?: actionName

writeCssIfExists( out, "css/my-custom.css" )

// Determine the current page
writeCssIfExists( out, "css/views/$controller/${action}-custom.css" )
}

private resourceExists( resPath ) {
return grailsApplication.parentContext.getResource( resPath ).file.exists()
}

private writeCssIfExists( writer, css ) {
if (resourceExists(css)) {
def baseUri = grailsAttributes.getApplicationUri(request)

baseUri += (baseUri.endsWith('/') ? '' : '/')

writer << r.external(uri: baseUri, type: 'css')
}
}
}

我如何在 Grails 3 中使用 Assets 管道处理相同的问题,任何建议或线索都非常感谢

最佳答案

一种可能的解决方法是创建一个 Gradle 任务,将外部文件夹中的这些 Assets 复制到适当的 grails-app/assets 文件夹

关于grails - Taglib 不处理引用外部文件夹的 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61009895/

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