背景:服务端有一个壳页面入口,页面包含了可简单的文件引用,静态文件的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/
来源:oschina
链接:https://my.oschina.net/hewenbin/blog/4314262