thymeleaf页面静态化demo

注:静态化服务应与nginx部署在同一服务器上,由nginx实现静态资源的加载,tomcat加载静态资源实在拉胯
1.导入依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
            <version>2.0.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.0.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>2.0.4.RELEASE</version>
        </dependency>

2.准备页面模版

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>page</title>
</head>
<body>
    <p> hello,<span th:text="${one.getName()}"></span></p>
    <p>hello,<span  th:text="${two.getName()}"></span></p>
</body>
</html>

3.静态化

	package com.ysj.thymeleaf.service;

import com.ysj.thymeleaf.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import java.io.File;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;

/**
 * @Author:
 * @Created Date:8:46 下午 2020/3/25
 * @Description:
 */
@Service
public class PageService {

    @Autowired
    private TemplateEngine engine;

    /**
     * 准备数据
     * @return
     */
    public Map<String, Object> createModelMap(){
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("one",new User("张三",22));
        map.put("two",new User("李四",23));
        return map;
    }

    /**
     * 生成html
     * @param fileName
     */
    public void createHtml(String fileName){
        //上下文
        Context context = new Context();
        context.setVariables(createModelMap());
        //输出流 此处应输出到nginx下的html目录
        File dest = new File("/opt/nginx/html/page/" + fileName + ".html");

        try(PrintWriter writer = new PrintWriter(dest, "UTF-8")){
            //生成html
            engine.process("page",context,writer);
        }catch (Exception e){
            //记录日志
            //log.error("message",e)
        }
    }
}

4.测试

package com.ysj.thymeleaf.service;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;


/**
 * @Author:
 * @Created Date:9:20 下午 2020/3/25
 * @Description:
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class PageServiceTest {
    @Autowired
    private PageService pageService;

    @Test
    public void createHtml() {
        pageService.createHtml("demo");
    }
}

nginx配置

server{
        listen      80;
        server_name  www.leyou.com;

        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        location /page {
            #先找本地
            root html;
            if (!-f $request_filename) { #请求的文件不存在,就反向代理,将html写入本地
                proxy_pass http://192.168.xxx.xxx:8084;
            }
        }
        location / {
                        proxy_pass http://192.168.xxx.xxx:10010; #主机下的10010端口
                        proxy_connect_timeout 600;
                        proxy_read_timeout 600;
        }
    }

完成
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值