Spring Bootのプロジェクトで静的コンテンツの配信
前回のエントリーの続きです。
Spring Bootはすごく便利なのですが、今までxmlでやってたことをどうやれば良いのかがよく分からなかった。
特に、cssやjavascriptといったいわゆる静的コンテンツの扱いをどうしたらいいのか何も分からなかったので調べてメモ。
準備
静的コンテンツの配信自体はここのドキュメントにふんわりと書いてありました。
どうやら、
デフォルトでは
/static
のフォルダにあるやつを静的コンテンツとして扱います。
独自のフォルダにしたい場合はWebMvcConfigurerAdapter
クラスのaddResourceHandlers
メソッドをオーバーライドして使ってください。
との事らしいです。
この便利な自動設定自体はspring-boot-starter-web
を依存関係に追加していれば自動的に反映されるようです。
なので、ディレクトリ構成をこんな感じにして、
(/static
が今回配信したい静的コンテンツ置き場です)
htmlの中からcssやjavascriptを呼ぶ場合はこんな感じにして、
(/static
は省略するようです)
<!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>Getting Started: Serving Web Content</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <!-- css --> <link href="/css/hello.css" th:href="@{/css/hello.css}" rel="stylesheet"/> </head> <body> <p th:text="'Hello, ' + ${name} + '!'" /> <div class="word">css</div> <!-- javascript --> <script type="text/javascript" src="/javascript/hello.js" th:src="@{/javascript/hello.js}"></script> </body> </html>
これで完成。
結果
こんな感じにcssとjavascriptが両方読み込めてればok!
ディレクトリ構成やファイルの読み込み方が最初ぜんぜん分からなくて困ってました><