当前位置: 首页 > 知识库问答 >
问题:

使用Spring Boot 2缓存和压缩静态资源

戚同
2023-03-14

我有一个Spring Boot 2应用程序,其中静态资源包括:

src 
|-  main
    |-resources 
        |-static
            |-js/myjs.js
            |-style
                |-css/mycss.css

在我的模板文件中:

<link rel="stylesheet" type="text/css" href="/style/css/mycss.css">
<script src="/js/myjs.js"></script>

这很好用。

但是我想启用浏览器缓存和gzip传输。为此,我创建了以下WebConfig:

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry
                .addResourceHandler("/static/**")
                .addResourceLocations("/static/")
                .setCachePeriod(3600)
                .resourceChain(true)
                .addResolver(new GzipResourceResolver())
                .addResolver(new PathResourceResolver());
    }
}

该应用程序仍能工作,但未缓存或压缩静态内容:

知道我哪里做错了吗?

共有3个答案

韦泳
2023-03-14

最后我能够通过简单的应用程序配置来解决它:

server.compression.enabled=true
spring.resources.cache-period=3600

WebConfig代码已从项目中删除。

注意:我必须注意,Chrome仍然显示内容没有被压缩,但如果我用Fiddler检查网络流量,那么它显示所有css和js文件都被压缩了。

赵嘉纳
2023-03-14
server.compression.enabled=true
spring.resources.cache-period=3600

Spring护套2.0更改

spring.resources.cache-period=3600 to spring.resources.cache.period=3600
邹嘉石
2023-03-14

对于Spring Boot 2.0.0,我使用以下配置:

server.compression.enabled=true
spring.resources.cache.cachecontrol.cache-public=true
spring.resources.cache.cachecontrol.no-cache=false
spring.resources.cache.cachecontrol.no-store=false
spring.resources.cache.cachecontrol.must-revalidate=false
spring.resources.cache.cachecontrol.max-age=31536000
 类似资料:
  • Glassfish 3.1.2,Mojarra 2.1.6,SSL已激活 也是一篇关于资源缓存的好文章。在我们的应用服务器中,SSL被激活。我们看到静态资源(图像、脚本、css)没有缓存。 下面是我的测试筛选器: 过期:确定。它是一个静态资源,不会改变,因此我们将到期日期设置在未来的一个月。 上次修改:不确定。我读到,将此设置为过去也会影响缓存 缓存控制:OK。允许安全缓存。安全影响? 此设置是否

  • 我设置了一个AWS S3存储桶,以便使用应用程序django-store在远程CDN传输我的静态文件,一切正常,直到我尝试在使用django_compressor上传到S3之前压缩我的静态文件。 我已经根据django\u压缩机文档为django存储设置了所有变量(https://django_compressor.readthedocs.org/en/latest/remote-storages

  • 本文向大家介绍Nginx设置静态页面压缩和缓存过期时间的方法,包括了Nginx设置静态页面压缩和缓存过期时间的方法的使用技巧和注意事项,需要的朋友参考一下 使用nginx服务器的朋友可能都知道需要设置html静态页面缓存与页面压缩与过期时间的设置了,下面我来给各位同学介绍一下配置方法,包括对ico,gif,bmp,jpg,jpeg,swf,js,css,mp3文件进行本地缓存. 可以通过nginx

  • 为优化站点性能,静态资源应该带有恰当的'Cache-Control'值与其他必要的头。配置一个ResourceHttpRequestHandler处理器服务静态资源请求不仅会读取文件的元数据并填充'Last-Modified'头的值,正确配置时'Cache-Control'头也会被填充。【这段翻得还不是很清晰】 你可以设置ResourceHttpRequestHandler上的cachePerio

  • 问题内容: 我知道这是一项容易的任务,但是更改代码后它停止工作,并且无法恢复!我实际上使用了两个函数来进行压缩和解压缩,尽管实际上它是“ jar”和“ unjar”,但这并没有太大的区别 任何帮助/建议吗? 创建JarFile时发生错误: 问题答案: 我不知道这是否是您的问题,但是通常最好在完成写入后关闭每个zip条目。 请参阅。 在显示的代码中,不会关闭邮政编码中的最后一个条目。您也不会显示关闭

  • 如果你以前使用过官方的 vuejs-templates/webpack 样板,那么你应该对 static/ 目录很熟悉。这里面,你可以放置可供 main 和 renderer 进程使用的静态资源。在 Vue 应用程序中使用这些资源很简单,但是使用 fs 和其他需要完整路径的模块可能会有点棘手。 幸运的是,electron-vue 提供了一个 __static 变量,它可以在开发和产品阶段生成 st