一目錄結(jié)構(gòu)
image.png
二.springboot靜態(tài)資源映射規(guī)則
-
對那些目錄支持映射:
WebMvcAutoConfiguration類自動(dòng)為我們注冊了如下目錄為靜態(tài)資源目錄,也就是說直接可訪問到資源的目錄灾部。
classpath:/META-INF/resources/ classpath:/resources/ classpath:/static/ classpath:/public/ /:當(dāng)前項(xiàng)目的根路徑 簡單來說: 就我們在上面五個(gè)目錄下放靜態(tài)資源(比如:a.js等)霍骄,可以直接訪問([http://localhost:8080/a.js](http://localhost:8080/app.js))豪椿,類似于以前web項(xiàng)目的webapp下篮昧;放到其他目錄下無法被訪問壳坪。
-
優(yōu)先級:
優(yōu)先級從上到下暇昂。
所以莺戒,如果static里面有個(gè)index.html,public下面也有個(gè)index.html急波,則優(yōu)先會(huì)加載static下面的index.html从铲,因?yàn)閮?yōu)先級!
三.靜態(tài)資源請求:
springboot的請求路徑一般會(huì)經(jīng)過Controller處理澄暮,但是靜態(tài)資源文件在請求之后是直接返回的名段。這涉及到倆個(gè)配置項(xiàng),如果項(xiàng)目中沒有設(shè)置,默認(rèn)會(huì)執(zhí)行這種配置
spring.mvc.static-path-pattern=/** 指的是請求路徑。
spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
指的是泣懊,靜態(tài)資源目錄,目錄按配置順序由先到后伸辟,優(yōu)先級由高到低。
如果配置文件中配置為
spring.mvc.static-path-pattern:/static/**馍刮,
spring.resources.static-locations:classpath:/static/,classpath:/public/
即http://localhost:8088/static/index.html的請求會(huì)是一個(gè)靜態(tài)請求信夫;而http://localhost:8088/index.html的請求不是一個(gè)靜態(tài)請求。
項(xiàng)目中的配置方式是:
package com.tsinkai.ettp.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter{
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
}
}
-
html中的引用方式
正確寫法:<script src="/static/layui/layui.js">
錯(cuò)誤寫法:<script src="static/layui/layui.js"> controller寫法
/**
* 配置jsp頁面不能使用@RestController
*/
@Controller
//@ResponseBody
@RequestMapping("/dome")
public class DomeController {
@RequestMapping("/dome")
public String dome(){
System.out.println("---------");
return "index";
}
}