Spring Boot static静的リソースが問題にアクセスできない
以前はdemoをしていましたが、当時は注意していませんでしたが、静的リソースにアクセスできないことがわかりました.
Spring Bootはclasspath:/static/以下のリソースを自動的に静的リソースとして構成し、その後、ネット上で多くの方法を探して試したが、解決できなかった.
そこで私はプロジェクトを書き直して、この古いプロジェクトの構成を一つ一つ移動して、最後に私が構成したブロックの問題であることを発見しました.私がブロッキングを構成して継承したクラスは、WebMvcConfigurationSupportというクラスであり、spring bootの自動構成を失効させるからです.
どうやって解決しますか?
1つ目は、WebMvcConfigurerAdapterを継承することができます.もちろん、1.8+WebMvcConfigurerAdapterというクラスが古い場合は、WebMvcConfigurerインタフェースを直接実装し、addInterceptorsを書き換えてブロッキングを追加することができます.
1
2
3
4
5
6
7
8
9
10
または、WebMvcConfigurationSupportを継承し、addResourceHandlersメソッドを書き換えます.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
変換元:https://www.acgist.com/article/488.html
Spring Bootはclasspath:/static/以下のリソースを自動的に静的リソースとして構成し、その後、ネット上で多くの方法を探して試したが、解決できなかった.
そこで私はプロジェクトを書き直して、この古いプロジェクトの構成を一つ一つ移動して、最後に私が構成したブロックの問題であることを発見しました.私がブロッキングを構成して継承したクラスは、WebMvcConfigurationSupportというクラスであり、spring bootの自動構成を失効させるからです.
どうやって解決しますか?
1つ目は、WebMvcConfigurerAdapterを継承することができます.もちろん、1.8+WebMvcConfigurerAdapterというクラスが古い場合は、WebMvcConfigurerインタフェースを直接実装し、addInterceptorsを書き換えてブロッキングを追加することができます.
1
2
3
4
5
6
7
8
9
10
@Configuration
public
class
InterceptorConfig
implements
WebMvcConfigurer {
@Override
public
void
addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(
new
UserInterceptor()).addPathPatterns(
"/user/**"
);
WebMvcConfigurer.
super
.addInterceptors(registry);
}
}
または、WebMvcConfigurationSupportを継承し、addResourceHandlersメソッドを書き換えます.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Configuration
public
class
InterceptorConfig
extends
WebMvcConfigurationSupport {
@Override
protected
void
addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(
new
UserInterceptor()).addPathPatterns(
"/user/**"
);
super
.addInterceptors(registry);
}
@Override
protected
void
addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler(
"/**"
).addResourceLocations(
"classpath:/static/"
);
super
.addResourceHandlers(registry);
}
}
変換元:https://www.acgist.com/article/488.html