スキップしてメイン コンテンツに移動

投稿

ラベル(Thymeleaf)が付いた投稿を表示しています

Thymeleafのthymeleaf-layout-dialectライブラリはGraalVMで使えない (2023年2月時点)

筆者の開発しているプロジェクトでは、Spring BootのテンプレートエンジンにThymeleafを使っており、全画面共通のレイアウトテンプレートを定義するために thymeleaf-layout-dialect を利用していました。 このプロジェクトでGraalVMを使ってネイティブコードを生成しようと悪戦苦闘していたのですが、2023年2月時点では thymeleaf-layout-dialect がネイティブコンパイルに対応していないため無理という結論になりました。 native-imageのコマンド実行時にエラーになるクラスを --initialize-at-build-time 、 --initialize-at-run-time で手作業で追加していたのですが、追加する数が多すぎて無理でした。。。 それほどページ数は多くなかったので、泣く泣く thymeleaf-layout-dialect の利用をあきらめ、重複は増えてしまいますが、Thymeleaf標準機能だけで全テンプレートを書き換えました。 GitHub上のissueを見ていたところ、ライブラリの作成者も問題に気づいているようなので、今後対応されるかもしれません。 https://github.com/ultraq/thymeleaf-layout-dialect/issues/232

Spring BootでThymeleafのキャッシュをオフにする方法

Spring BootでテンプレートエンジンとしてThymeleafを使っていると、デフォルトではキャッシュが効いて、開発時にテンプレートを修正するたびにアプリケーションを再起動する必要があます。 Thymeleafのキャッシュをオフにするにはapplication.propertiesに下記の設定を加えればOKです。 spring.thymeleaf.cache: false これによりページリロードの度に毎回テンプレートの解析が行われ、編集内容がすぐに反映されるようになります。 本番デプロイ時は設定を無効にすることを忘れないようにしてください。