SpringBoot---静态页面加载

Thymeleaf模板配置:

maven添加支持以下:css

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>

application.properties添加以下配置:html

# 定位模板的目录 spring.mvc.view.prefix=classpath:/templates/ # 给返回的页面添加后缀名 spring.mvc.view.suffix=.html

controller返回页面:前端

@GetMapping("/index") public String index(){ return "home"; //当浏览器输入/index时,会返回 /templates/home.html页面 }

注意:
spring boot默认开启了静态文件的配置,任何放在static文件夹下的资源都是静态文件。引用静态文件时以/或者前缀不加任何定位符,都会去static文件夹下查找。 

Thymeleaf模版默认会使用templatess做为视图文件下

/

返回纯静态html,时下,比较流行的是先后端分离,前端作路由,前端的开发不使用模板。在这种状况下,使用模板就显得有些臃肿了。java


spring boot返回静态页面的方式很是方便,首先须要移除maven的thymeleaf依赖。web

非controller模式
这种模式不使用controller,将html和css,js同等对待。这种模式下,html中的若是不加/,则会定位到当前页面。
要看到返回静态页面,只须要将以前的home.html移到static文件夹下。并删除controller和注释掉application.properties中的配置便可。直接在浏览器中输入:http://localhost:8080/index.html。spring

controller模式
习惯上,咱们仍是多使用/index方式,而不是index.html方式。
为此仍是须要controller。后端

# 定位页面的目录到static/下
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.html

controller固然也是须要的,和以前同样:浏览器

@GetMapping("/index")
public String index(){
return "home"; //当浏览器输入/index时,会返回 /static/home.html的页面
}
到这里就能够了。不在须要额外配置。在浏览器中输入:http://localhost:8080/index就能够定位到static下的index.html页面了。mvc

 

注意点:app

通常若是只把框架作为url路由,最好的作法是在静态资源和视图View创建相同的文件,视图在经过框架在相应的目录查找,静态资源则路由到static目录下去查找。

看以下项目结构:

 

更改静态资源默认的访问路径

上面说到/resources/static静态资源的默认请求路径为/ 。假如个人静态资源位于/resources/static/dist目录下,可是我不想将请求改成/dist(这里要注意一下html中引用其它资源的相对路径若是是./xxx 在本地更改真个文件加的路径引用的资源文件是可以正常定位,可是在web容器中./xxx需改成/dist/xxx ,这里涉及到web根路径和本地文件路径的问题)能够在application.properties加以下配置: spring.resources.static-locations=classpath:/static/dist/ 这样当咱们访问/ 时实际定位的资源文件位置是/resources/static/dist 这样就避免了当更改资源文件的位置时须要更改html中的所有引用。

相关文章
相关标签/搜索