您好,登錄后才能下訂單哦!
小編給大家分享一下SpringBoot怎么實(shí)時(shí)刷新靜態(tài)文件,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
Spring Boot在MVC中有個(gè)WebMvcProperties的配置類(lèi),還有個(gè)ResourceProperties資源配置類(lèi)。
默認(rèn)情況下Spring Boot從下面的目錄下尋找靜態(tài)資源文件
private static final String[] CLASSPATH_RESOURCE_LOCATIONS = { "classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/" };
默認(rèn)的靜態(tài)資源路徑匹配為/**。
修改Spring Boot配置,注意static-locations為靜態(tài)資源在自己電腦中的絕對(duì)路徑配置
spirng resources: chain: cache: false static-locations: file:///Users/aihe/Desktop/taqu/ticket-system/src/main/resources/static/,file:///Users/aihe/Desktop/taqu/ticket-system/src/main/resources/ mvc: static-path-pattern: /static/**
以后再修改靜態(tài)文件的時(shí)候,js,html,css等即可立即生效,也不需要熱部署的插件什么的。算是一個(gè)小tip吧~
經(jīng)常做Spring Boot開(kāi)發(fā),有很多時(shí)候不需要前后端分離,比如后管系統(tǒng)。開(kāi)發(fā)的時(shí)候每次修改頁(yè)面就需要重啟,極度不方便。其實(shí)Spring Boot設(shè)計(jì)是不需要重啟的,只是我們沒(méi)注意用法而已。
pom & main
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.1.6.RELEASE</version> </dependency> </dependencies>
@SpringBootApplication public class BootMain { public static void main(String[] args) { SpringApplication.run(BootMain.class, args); } }
靜態(tài)資源文件,查詢官方docs文檔放在"classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/"任意目錄,即可加載
啟動(dòng)main,訪問(wèn)http://localhost:8082/index.html,筆者自定義了端口
其實(shí)很簡(jiǎn)單,Spring Boot生效的目錄在target目錄,并非我們的resource目錄
Spring Boot只認(rèn)target,我們修改的resources怎么會(huì)自動(dòng)編譯target呢,所以要重啟了!?
解決方法有很多,常見(jiàn)的有mvn compile即可,或者自動(dòng)編譯(不推薦,因?yàn)橘Y源文件,java也會(huì)編譯),其實(shí)有一種非常簡(jiǎn)單的方法
每次修改后,右鍵,recompile即可,我已經(jīng)修改了,來(lái)試試
生效了,?
了解原理有利于我們自定義Spring Boot,從根源上來(lái)使用它
可以看到,靜態(tài)資源加載的代碼是
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/")
里面的參數(shù)請(qǐng)自動(dòng)忽略,因?yàn)槲覀兛梢宰远x
這是為什么很多教程說(shuō)自定義這個(gè)方法即可,不重啟刷新靜態(tài)資源,因?yàn)榻坛淌侵付速Y源文件的路徑,編譯后的路徑就是資源路徑
常用的自定義spring.mvc.staticPathPattern = "/**",默認(rèn)/**,配置pattern,url的路徑參數(shù)
@ConfigurationProperties(prefix = "spring.mvc") public class WebMvcProperties { private String staticPathPattern = "/**";
spring.resources.staticLocations = classpath:/html/,默認(rèn)如下,這是Spring Boot默認(rèn)配置的的路徑
@ConfigurationProperties(prefix = "spring.resources", ignoreUnknownFields = false) public class ResourceProperties { private static final String[] CLASSPATH_RESOURCE_LOCATIONS = { "classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/" }; /** * Locations of static resources. Defaults to classpath:[/META-INF/resources/, * /resources/, /static/, /public/]. */ private String[] staticLocations = CLASSPATH_RESOURCE_LOCATIONS;
看完了這篇文章,相信你對(duì)“SpringBoot怎么實(shí)時(shí)刷新靜態(tài)文件”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。