コンテキストパスとは?なぜ必要?
コンテキストパスとは、サーバーにおけるWebアプリケーションのパスのとこです。
アプリケーションAとアプリケーションBを同一サーバー上で起動する場合、
http://localhost:8080 がサーバーのパスになりますが、
その後、コンテキストパスがないと、どのアプリに対するURLなのか分かりません。
例えば、http://localhost:8080/update というパスは、アプリケーションAのupdateなのか、アプリケーションBのupdateなのか分からなくなります。
そこで、アプリケーションAとアプリケーションBというように、アプリケーション自身を識別するためのパスがコンテキストパスです。
次のようにして識別できるようにします。
・アプリケーションAのコンテキストパスを /path-to-a
・アプリケーションBのコンテキストパスを /path-to-b
としておくと、
URLは http://localhost:8080/path-to-a/update となり、アプリケーションAのupdateであると判別がつくようになります。
Springのコンテキストパスの指定方法
SpringBootアプリケーションのコンテキストパスは、application.ymlまたはapplication.propertiesで指定できます。
server.servlet.context-path=/hoge
server.port
Thymeleafでの補完方法
Thymeleafでは「@」(リンクURL式)を使うことで、コンテキストパスを補完してくれます。
(Thymeleaf 4.4 リンクURL)
<a href="/hoge/after">リンク</a>
<a th:href="@{/after}">リンク2</a>
出力されたHTMLは次のように、補完されたものになっています。