SpringBoot中HTML文件的存放位置和访问方式详解
在使用Spring Boot进行Web开发时,HTML文件通常存放在src/main/resources/static或src/main/resources/templates目录下,以下是详细介绍:
存放位置
static目录
该目录用于存放静态资源,像HTML、CSS、JavaScript文件以及图片等都可以放在这里。Spring Boot会自动提供对这些资源的访问。
templates目录
此目录用于存放模板文件,一般配合模板引擎使用,例如Thymeleaf、Freemarker等。只要把HTML文件放在该目录下,Spring Boot会根据请求解析并返回动态生成的内容。不过,Spring Boot项目下的templates目录的资源默认是受保护的,没有开放访问权限,因为它是放置模板文件的,需要视图解析器来解析。
访问方式
默认文件路径访问
将HTML文件放在resources/static目录下,可以直接通过ip + 端口号 + 文件路径进行访问。例如文件放在resources/static/view目录下,也能通过此方式访问。
自定义文件路径访问
由于templates文件夹资源默认无开放访问权限,若要访问该目录下的静态资源,可在application.yml或者application.properties配置文件中将访问权限开放。
application.yml文件配置示例:
spring: resources: static-locations: classpath:/META-INF/resources/, classpath:/resources/, classpath:/static/, classpath:/public/, classpath:/templates/
或者application.properties文件配置示例:
spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/templates/
配置完成后,启动Spring Boot,在浏览器中输入地址就可以直接访问templates目录下的静态资源。不过这种方式存在安全隐患,不建议使用。
通过Controller控制器层跳转访问
这是推荐的访问templates目录下HTML文件的方式。首先要在pom文件中添加依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
然后编写Controller代码,注意这里返回页面需要使用@Controller注解,如果写成@RestController,只会返回字符串。示例代码如下:
@RequestMapping("/hellolayui") public String helloHtml(HashMap<String, Object> map) { map.put("hello", "统计如下"); return "index"; }