SpringBoot中HTML文件的存放位置和访问方式详解

频道:互联网 日期: 浏览:4

在使用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目录的资源默认是受保护的,没有开放访问权限,因为它是放置模板文件的,需要视图解析器来解析。

SpringBoot中HTML文件的存放位置和访问方式详解

访问方式

默认文件路径访问

将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";
}