删除 "Expires" HTTP header(对于 StreamedFiles)
Remove "Expires" HTTP header (for StreamedFiles)
在 micronaut 过滤器中,我指定了我自己的 headers,e。 G。我用“max-age”指令设置了“Cache-Control”header。因此我想删除“Expires”header,因为通过使用“Cache-Control”,“Expires”header 被忽略 1.
从过滤器返回 StreamedFile 时,“过期”和“日期”header 由 FileTypeHandler 2 设置,我不知道如何更改它。
是否有更改此选项的选项?
示例:
@Filter("/**")
public class MyFilter implements HttpServerFilter {
@Inject
ImageService imageService;
@Override
public Publisher<MutableHttpResponse<?>> doFilter(HttpRequest<?> request, ServerFilterChain chain) {
File image = imageService.getImage(request);
return Publishers.just(
HttpResponse.ok(new StreamedFile(new FileInputStream(image), MediaType.IMAGE_JPEG_TYPE))
.header("Cache-Control", "max-age=31449600")
.header("Access-Control-Allow-Methods", "GET")
.header("Referrer-Policy", "same-origin")
);
}
}
不确定为什么要 return 来自过滤器的文件
如果只是您确定的方法打扰您生成此 headers,您可以覆盖它:
@Singleton
@Replaces(FileTypeHandler.class)
public class CustomFileTypeHandler extends FileTypeHandler {
public CustomFileTypeHandler(FileTypeHandlerConfiguration configuration) {
super(configuration);
}
@Override
protected void setDateAndCacheHeaders(MutableHttpResponse response, long lastModified) {
//do nothing
}
}
在 micronaut 过滤器中,我指定了我自己的 headers,e。 G。我用“max-age”指令设置了“Cache-Control”header。因此我想删除“Expires”header,因为通过使用“Cache-Control”,“Expires”header 被忽略 1.
从过滤器返回 StreamedFile 时,“过期”和“日期”header 由 FileTypeHandler 2 设置,我不知道如何更改它。
是否有更改此选项的选项?
示例:
@Filter("/**")
public class MyFilter implements HttpServerFilter {
@Inject
ImageService imageService;
@Override
public Publisher<MutableHttpResponse<?>> doFilter(HttpRequest<?> request, ServerFilterChain chain) {
File image = imageService.getImage(request);
return Publishers.just(
HttpResponse.ok(new StreamedFile(new FileInputStream(image), MediaType.IMAGE_JPEG_TYPE))
.header("Cache-Control", "max-age=31449600")
.header("Access-Control-Allow-Methods", "GET")
.header("Referrer-Policy", "same-origin")
);
}
}
不确定为什么要 return 来自过滤器的文件
如果只是您确定的方法打扰您生成此 headers,您可以覆盖它:
@Singleton
@Replaces(FileTypeHandler.class)
public class CustomFileTypeHandler extends FileTypeHandler {
public CustomFileTypeHandler(FileTypeHandlerConfiguration configuration) {
super(configuration);
}
@Override
protected void setDateAndCacheHeaders(MutableHttpResponse response, long lastModified) {
//do nothing
}
}