我有一些非常大的json响应被发送到客户端浏览器,我正在试图弄清楚如何压缩它们。我已尝试使用ui-performance插件,如此问题的答案中所述: How to compress output from a grails controller?
但它没有用。我的json文件仍然大小相同(~40MB) 我也试过使用yui-minify资源插件,但无济于事。我怎么能这样做? 另外,建议将这么大的json文件发送到浏览器吗? (前端的某个下拉选项允许浏览器在每次用户选择选项时请求此大小的json响应)
谢谢!
答案 0 :(得分:2)
你可以直接在tomcat http://viralpatel.net/blogs/enable-gzip-compression-in-tomcat/
中完成直接在server.xml
或tomcat plugin
更新
您也可以尝试手动操作,如:
def zipStream = new GZIPOutputStream( response.outputStream )
zipStream.write( yourJsonString.getBytes() )
zipStream.close()
response.outputStream
答案 1 :(得分:2)
Grails 3.0及更高版本基于Spring Boot,它支持此功能。您应该查看个人版本的文档,但在Grails 3.2.2中,您可以将其添加到application.yml
的第2部分:
server:
compression:
enabled: true
mime-types: application/json,application/xml,text/html,text/xml,text/plain
答案 2 :(得分:0)