Spring Bootで静的リソースにCache-Controlヘッダを追加する方法
静的資源を処理する上で、Cache-Control ヘッダーを Spring Boot に追加するには、WebMvcConfigurer インターフェースの `addResourceHandlers` メソッドを利用することができる。
WebMvcConfigurerインターフェースを実装したクラスを作成し、addResourceHandlersメソッドをオーバーライドします。このメソッドでは、addResourceHandlerメソッドを使用し、静的リソースのURLパスを指定し、addResourceLocationsメソッドを使用し、静的リソースのファイルパスを指定します。その後、setCacheControlメソッドを使用して、静的リソースにCache-Controlヘッダーを追加します。
以下にサンプルコードを示します。
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**")
.addResourceLocations("classpath:/static/")
.setCacheControl(CacheControl.maxAge(365, TimeUnit.DAYS));
}
}
上記の例では、静的リソースのURLパスが「/static/**」で、静的リソースのファイルパスが「classpath:/static/」となっています。setCacheControlメソッドで、静的リソースにCache-Controlヘッダーを追加し、キャッシュの最大期間を365日間に設定しています。
次に、Spring Bootが自動的に認識し、読み込みを行うことができるように、このクラスに @Configuration アノテーションを付けます。
それにより、静的リソースへのアクセス時、応答ヘッダにCache-Controlヘッダが付与されます。