如何压缩来自 grails 控制器的输出?
Posted
技术标签:
【中文标题】如何压缩来自 grails 控制器的输出?【英文标题】:How to compress output from a grails controller? 【发布时间】:2013-06-22 23:49:04 【问题描述】:我的 Grails 1.3.7 控制器正在生成一些 JSON,我想以压缩(压缩)的形式将其发送到客户端,因为未压缩的 JSON 量可以是 2+MB。我发现的资源插件似乎只压缩静态资源。有没有办法压缩动态控制器的输出?
【问题讨论】:
可以Ui-Performance插件帮忙吗?我不确定用法,但该插件的功能之一是 gzip 动态文本内容,如 JSON。 【参考方案1】:如果使用Ui-Performance plugin,我猜你需要在Config.groovy
中进行以下配置:
uiperformance.html.includeContentTypes = ['text/json','application/json']
还可以查看CompressingFilter API,它用于压缩 HttpServletResponse。 如果好奇,您还可以查看source,了解如何操纵 Web 描述符以使用压缩器。
【讨论】:
【参考方案2】:如果您从 apache 或 nginx 之类的网络服务器后面为您的 grails 应用程序提供服务,您可以相当轻松地在前端配置压缩。
请参阅mod_deflate 用于 apache 和 HttpGzipModule 用于 nginx。
如果您希望在 jar 中进行压缩工作,您可以创建一个 ServletFilter
并自己进行压缩 as mentioned in this SO question 或使用类似 UI-Performance 插件 as mentioned by dmahapatro 的东西。
【讨论】:
以上是关于如何压缩来自 grails 控制器的输出?的主要内容,如果未能解决你的问题,请参考以下文章