0

問題があります。これは、アプリケーションをデプロイするときにのみ発生する問題です。開発時には問題はありません。

私は2つのコントローラーを持っています。2 番目が拡張している ia プラグインに常駐する 1 つのコントローラー。/templates/_mytemplate.gspビュー フォルダー ( 「メイン」プロジェクト内)、つまりプラグイン内には、特定のテンプレートが存在します。

「common-controller」には、文字列に基づいてさまざまなテンプレートをレンダリングするメソッドがあります。そして、これが問題の始まりです。使用:

String summary = groovyPageRenderer.render(template: "/mycontroller/templates/_mytemplates.gsp", model: [foo: bar])

開発中は問題なく動作しますが、戦争で配備されると、文字列は空になります。[1]のルックアップ パスを区別するresolveSearchPaths方法に問題を絞り込みました。DefaultGroovyPageLocator

誰?合理的な解決策は何ですか?テンプレートがプラグインに配置されていないことが望ましい....

4

2 に答える 2

0

数日前のリリースで同様の問題が発生し、次のようなものを使用しました。

try {
        //look for template in the main app
        def html = render(template:'/mycontroller/templates/mytemplates', model: [foo: bar])
        if(html && html.size() > 0) {
            render html
        }
    } catch (Exception e) {
        //bad way to handle template not found.
    }
    //fallback on the template defined in the plugin
    render(plugin:'myPlugin', template:'/mycontroller/templates/mytemplates', model: [foo: bar])

これはおそらくこの問題を処理するための最良の方法ではありませんが、少なくとも展開された戦争を機能させることができます。

于 2013-02-01T10:48:28.157 に答える
0

バカバカバカ!

Windows での開発 - Unix への展開。そのため、キャメルケース T <- を忘れました。これは、Unix ではなく Windows で動作します :)

それを機能させるには:

String summary = groovyPageRenderer.render(template: "/mycontroller/templates/_my**T**emplates.gsp", model: [foo: bar])
于 2013-02-01T14:18:12.060 に答える