@Override protected Resource resolveResourceInternal(@Nullable HttpServletRequest request, String requestPath, List<? extends Resource> locations, ResourceResolverChain chain) { Resource resource = chain.resolveResource(request, requestPath, locations); if (resource == null || request == null) { return resource; } String acceptEncoding = getAcceptEncoding(request); if (acceptEncoding == null) { return resource; } for (String coding : this.contentCodings) { if (acceptEncoding.contains(coding)) { try { String extension = getExtension(coding); Resource encoded = new EncodedResource(resource, coding, extension); if (encoded.exists()) { return encoded; } } catch (IOException ex) { if (logger.isTraceEnabled()) { logger.trace("No " + coding + " resource for [" + resource.getFilename() + "]", ex); } } } } return resource; }
@Before public void setUp() { this.cache = new ConcurrentMapCache("resourceCache"); VersionResourceResolver versionResolver = new VersionResourceResolver(); versionResolver.setStrategyMap(Collections.singletonMap("/**", new ContentVersionStrategy())); List<ResourceResolver> resolvers = new ArrayList<>(); resolvers.add(new CachingResourceResolver(this.cache)); resolvers.add(new EncodedResourceResolver()); resolvers.add(versionResolver); resolvers.add(new PathResourceResolver()); this.resolver = new DefaultResourceResolverChain(resolvers); this.locations = new ArrayList<>(); this.locations.add(new ClassPathResource("test/", getClass())); this.locations.add(new ClassPathResource("testalternatepath/", getClass())); }
@Override protected Resource resolveResourceInternal(@Nullable HttpServletRequest request, String requestPath, List<? extends Resource> locations, ResourceResolverChain chain) { Resource resource = chain.resolveResource(request, requestPath, locations); if (resource == null || request == null) { return resource; } String acceptEncoding = getAcceptEncoding(request); if (acceptEncoding == null) { return resource; } for (String coding : this.contentCodings) { if (acceptEncoding.contains(coding)) { try { String extension = getExtension(coding); Resource encoded = new EncodedResource(resource, coding, extension); if (encoded.exists()) { return encoded; } } catch (IOException ex) { if (logger.isTraceEnabled()) { logger.trace("No " + coding + " resource for [" + resource.getFilename() + "]", ex); } } } } return resource; }
@Override protected Resource resolveResourceInternal(@Nullable HttpServletRequest request, String requestPath, List<? extends Resource> locations, ResourceResolverChain chain) { Resource resource = chain.resolveResource(request, requestPath, locations); if (resource == null || request == null) { return resource; } String acceptEncoding = getAcceptEncoding(request); if (acceptEncoding == null) { return resource; } for (String coding : this.contentCodings) { if (acceptEncoding.contains(coding)) { try { String extension = getExtension(coding); Resource encoded = new EncodedResource(resource, coding, extension); if (encoded.exists()) { return encoded; } } catch (IOException ex) { if (logger.isTraceEnabled()) { logger.trace("No " + coding + " resource for [" + resource.getFilename() + "]", ex); } } } } return resource; }