springBoot使用freemarker生成html页面

走远了吗. 提交于 2020-08-16 02:49:23
背景:服务端有一个壳页面入口,页面包含了可简单的文件引用,静态文件的CDN域名(区分环境)、文件版本号(可能变更)
比如:
test环境:<script src="//s1.test.xxcdn.com/xxx/dist/umi.js?v=1.0.1"></script>
prod环境:<script src="//s1.prod.xxcdn.com/xxx/dist/umi.js?v=1.0.2"></script>

目标:最简单的方式给前端一个页面,同时,页面中的静态文件域名、版本号可作为参数,从后端写入页面;

方案:使用freemarker模板引擎

前提:springboot类型的应用

操作步骤:
第一步:引入freemarker模板引擎的jar
<!-- freemarker模板引擎 -->
<dependency>
  <groupId>org.freemarker</groupId>
  <artifactId>freemarker</artifactId>
  <version>2.3.30</version><!-- 用最新的版本号 -->
</dependency>
  
第二步:增加freemarker配置(application.yml),这里只有必要的配置
  spring:
    freemarker:
      cache: false   #是否需要缓存页面,因为版本号需要修改,所以,不能缓存
      suffix: .html  #页面文件后缀
      
第三步:Controller类中加入路由入口
@RequestMapping(value = {"/xxx/**"})
public String xxx(Model model) {
  model.addAttribute("pageStaticUrl", "//s1.test.xxcdn.com");
  model.addAttribute("viewVersion", "1.0.1");
  return "index";
}

第四步:添加页面文件
  文件目录:src/main/resources/templates(springboot的默认页面文件目录)
  文件名:index.html
  文件内容:<script src="${pageStaticUrl}/xxx/dist/umi.js?v=${viewVersion}"></script>

第五步:访问:http://ip:port/server-name/xxx/

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!