Themleaf模板文件位置配置的几种方式

Themleaf模板文件位置配置的几种方式

##一、模板文件在项目内
如果HTML文件在项目内

spring:
  thymeleaf:
    cache: false
    encoding: utf-8
    prefix: classpath:/templates/
    suffix: .html
    mode: HTML

SpringBoot默认是加载resources文件下面的templates里面的
在这里插入图片描述

@Controller
public class ThymeleafController {
    @RequestMapping("/")
    public String getindex(Model model) {
        return "index";
    }
}

这里Controller里面把index返回出去

在这里插入图片描述
这里就可以成功访问到了

因为SpringBoot默认去resources/templates里面找文件,所以即使我们不在YML文件配置也是可以读取到index.html的
在这里插入图片描述
这里我们不做配置重启服务后也是可以正常访问到
在这里插入图片描述
如果你的HTML文件不在templates目录下需要修改
prefix: classpath:/templates/ 这个路径

二、模板文件不在项目内在本机上

如果你的HTML文件不在项目内在本地的时候也是可以配置的
注意我的这里是没文件的
如图我这里是没有文件的,我的文件在桌面
在这里插入图片描述
所以如果你的文件不在项目内也是可以的

server:
  port: 6077
spring:
  thymeleaf:
    cache: false
    encoding: utf-8
    prefix: file:/E:/Users/xxx/Desktop/  #linux系统文件目录不一样注意
    suffix: .html
    mode: HTML

三、模板文件存放在阿里云上

如果你的HTML文件不在项目内已经上传到阿里云的时候也是可以配置的
这里使用@Bean注入之后无需yml配置

import com.aliyun.oss.OSSClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.thymeleaf.spring5.SpringTemplateEngine;
import org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver;
import org.thymeleaf.spring5.view.ThymeleafViewResolver;
import org.thymeleaf.templatemode.TemplateMode;

@Configuration
public class ThymeleafConfig {
	@Value("${file.oss.access-key}")
	private String accessKeyId;

	@Value("${file.oss.secret-key}")
	private String accessKeySecret;

	@Value("${file.bucketName}")
	private String bucket;

	@Value("${file.oss.endpoint}")
	private String endPoint;

	@Bean
	public OSSClient ossClient() {
		return new OSSClient(endPoint, accessKeyId, accessKeySecret);
	}

	// Thymeleaf配置
	@Bean
	public SpringResourceTemplateResolver templateResolver() {
		SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
		 templateResolver.setPrefix("https://" + bucket+ ".oss-" + endPoint+ "/templates/"); // 设置模板文件的URL地址
		templateResolver.setSuffix(".html");
		templateResolver.setTemplateMode(TemplateMode.HTML);
		templateResolver.setCacheable(false);
		return templateResolver;
	}

	@Bean
	public SpringTemplateEngine templateEngine() {
		SpringTemplateEngine templateEngine = new SpringTemplateEngine();
		templateEngine.setTemplateResolver(templateResolver());
		return templateEngine;
	}

	@Bean
	public ThymeleafViewResolver viewResolver() {
		ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
		viewResolver.setTemplateEngine(templateEngine());
		return viewResolver;
	}

Controller里面直接返回文件名就行(这里带不带.html都可以)

@Controller
public class ThymeleafController {
    @RequestMapping("/")
    public String getindex(Model model) {
        //假如这是你的文件地址
        String a = "https://{你的bucketName}.oss-{你的endPoint}/{你的文件名字}.html";
        return "{你的文件名字}.html";
    }
}

如果对你有用的话点个赞再走吧!!!

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值