0

Grails 2.5 から Grails 3 への移行では、Grails 3 以降のリソース プラグインは非推奨であるため、リソース プラグインを使用しないことをお勧めします。代替手段として、アセット パイプラインを使用しました。アセット パイプライン プラグインに移行するときに、リソース プラグイン モジュールを置き換える推奨される方法はありますか? カスタム タグは、CSS ファイルのコンテンツを含むと想定される GSP ファイルで使用されます。現在、モジュール内にあったリ​​ソースを必要とする空の .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でアセットパイプラインを使用して同じことを処理するにはどうすればよいですか?提案やリードは大歓迎です

4

1 に答える 1