繁体   English   中英

如何在 Google App Engine 中缩小 HTML 响应

[英]How to Minify the HTML Response in Google App Engine

我有一个 Spring Boot 应用程序并托管在 Google App Engine 上。 它的工作正常。 我试图缩小 html 响应。 Minify 在我的本地电脑上使用 Tomcat。

但是缩小在 Google App Engine 中不起作用。

pom.xml

<dependency>
    <groupId>com.googlecode.htmlcompressor</groupId>
    <artifactId>htmlcompressor</artifactId>
    <version>1.5.2</version>
</dependency>
<dependency>
    <groupId>com.yahoo.platform.yui</groupId>
    <artifactId>yuicompressor</artifactId>
    <version>2.4.8</version>
    <exclusions>
        <exclusion>
            <artifactId>js</artifactId>
            <groupId>rhino</groupId>
        </exclusion>
    </exclusions>
</dependency>

过滤器.java

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    HttpServletResponse httpResponse = (HttpServletResponse) response;
    PrintWriter outWriter;
    try {
        CharResponseWrapper responseWrapper = new CharResponseWrapper((HttpServletResponse) response);
        chain.doFilter(request, responseWrapper);
        String servletResponse = responseWrapper.toString();
        if (servletResponse != null && !servletResponse.equals("")) {
            outWriter = httpResponse.getWriter();
            outWriter.write(compressor.compress(servletResponse));
            outWriter.flush();
            outWriter.close();
        }
    } catch (Exception ex) {

    }
}

CharResponseWrapper.java

package com.app.filter;

import java.io.CharArrayWriter;
import java.io.PrintWriter;

import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;

public class CharResponseWrapper extends HttpServletResponseWrapper 
{
    private final CharArrayWriter output;

    public CharResponseWrapper(HttpServletResponse response)
    {
        super(response);
        output = new CharArrayWriter();
    }

    @Override
    public PrintWriter getWriter() 
    {
        return new PrintWriter(output);
    }
    
    @Override
    public String toString() 
    {
        return output.toString();
    }    
}

在 Google 应用引擎中

CharResponseWrapper responseWrapper = new CharResponseWrapper((HttpServletResponse) response);

responseWrapper

您可以尝试编写一个部署脚本,用缩小的 HTML 复制您的代码,然后在部署时调用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM