Spring MVC 静态资源
此选项提供了一种从基于资源的位置列表中提供静态资源的便捷方法。
在下一个示例中,给定一个以 开头的请求,相关路径用于查找和提供相对于 Web 应用程序根下的静态资源或 下的类路径。资源在将来一年到期时提供,以确保浏览器缓存的最大使用量和浏览器提出的 HTTP 请求的减少。还计算标头,如果存在,则返回状态代码。/resources/public/staticLast-Modified304
以下列表显示了如何使用 Java 配置实现:
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**")
.addResourceLocations("/public", "classpath:/static/")
.setCachePeriod(31556926);
}
}
下面的示例演示如何在 XML 中实现相同的配置:
<mvc:resources mapping="/resources/**" location="/public/">
<mvc:resource-chain resource-cache="true">
<mvc:resolvers>
<mvc:version-resolver>
<mvc:content-version-strategy patterns="/**"/>
</mvc:version-resolver>
</mvc:resolvers>
</mvc:resource-chain>
</mvc:resources>
然后,您可以使用 重写 URL 并应用解析器和变压器,例如插入版本。MVC 配置提供 bean,以便可以注入其他 bean。您还可以使用for-Thymeleaf、jsp、FreeMarker和其他使用URL标记的
ResourceUrlProvider
ResourceUrlProvider
ResourceUrlEncodingFilter
HttpServletResponse#encodeURL
请注意,在同时使用这两种资源(例如,用于提供 gzipped 或 Brotli 编码的资源) 时,必须按此顺序注册它们。这确保了基于内容的版本总是可靠地计算,基于未编码的文件EncodedResourceResolver
VersionResourceResolver
Webjar也通过支持,当库出现在类路径上时,它会自动注册。解析器可以重写url以包含jar的版本,也可以与没有版本 - 的传入url相匹配,例如:
WebJarsResourceResolver
org.webjars:webjars-locator-core
/jquery/jquery.min.js
/jquery/1.2.0/jquery.min.js
更多建议: