我有一个spring boot应用程序,下面是资源处理程序的注册代码:
@Configuration
public class MyAppConfig extends WebMvcConfigurerAdapter {
...
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/js/**")
.addResourceLocations("/resources/js/").setCachePeriod(31536000);
//in same directory where all the js files placed,
//I want to cache all the files in that directory
//except for one file i.e. prop.js
/*registry.addResourceHandler("/resources/js/prop.js")
.addResourceLocations("/resources/js/").setCachePeriod(0);*/
}
...
}
有些事情我需要理解,即。
1. addResourceHandler
的参数是什么意思?
2. addResourceLocations
的参数是什么意思?
3.是否有任何方法可以明确阻止prop.js
被缓存?
可能有prop.js
所在级别的文件,我希望所有其他文件都被缓存。
答案 0 :(得分:1)
addResourceHandler
方法中,指定URL或URL模式。addResourceLocations
中,指定一个有效目录,该目录实际包含(或可能由逗号分隔的许多目录)静态资源。因此,最后,您在Web服务器上的URL ans目录之间进行了简单的映射。
如果仅想禁用文件prop.js
的缓存,请尝试以下操作:
registry
.addResourceHandler("/resources/js/**/prop.js")
.addResourceLocations("/resources/js/")
.setCachePeriod(0);
registry
.addResourceHandler("/resources/js/**")
.addResourceLocations("/resources/js/")
.setCachePeriod(31536000);