一篇文章帶你搞定SpringBoot不重啟專案實現修改靜態資源
一、通過配置檔案控制靜態資源的熱部署
在配置檔案 application.properties
中新增:
#表示從這個預設不觸發重啟的目錄中除去static目錄 spring.devtools.restart.exclude=classpath:/static/**
或者使用:
#表示將static目錄加入到修改資源會重啟的目錄中來 spring.devtools.restart.additional-paths=src/main/resource/static
此時對static 目錄下的靜態資原始檔做修改,點選構建,則會達到和熱部署一樣的作用效果
但是這兩種方法用處不大,平時我們也不可能修改一行程式碼就重啟一次專案,所以可以通過spring.devtools.restart.trigger-file
二、通過 LiveReload 外掛控制靜態檔案的熱部署
前面雖然可以通過配置解決靜態檔案的熱部署問題,但是沒有必要!因為靜態資原始檔發生變化後不需要編譯,按理說儲存後重新整理下就可以訪問到了。
devtools 中預設嵌入了 LiveReload 伺服器,利用 LiveReload 可以實現靜態檔案的熱部署,LiveReload 可以在資源發生變化時自動觸發瀏覽器更新,LiveReload 支援 Chrome、Firefox 以及 Safari 。以 Chrome 為例,在 Chrome 應用商店搜尋 LiveReload ,結果如下圖:
在瀏覽器中開啟專案的頁面,然後點選瀏覽器右上角的 LiveReload 按鈕,開啟 LiveReload 連線。
注意:
LiveReload 是和瀏覽器選項卡繫結在一起的,在哪個選項卡中打開了 LiveReload,就在哪個選項卡中訪問頁面,這樣才有效果
需要注意這裡同樣需要點選這個圖示進行構建:
如果不想使用這個功能也可以在 application.properties 中進行配置:
#禁用 LiveReload 功能 spring.devtools.livereload.enabled=false
三、配置 IDEA 即時編譯
eclipse 儲存既編譯,idea 會自動儲存,執行時會先編譯再執行,所以造成有時感覺IDEA 啟動專案比較慢
如果不想點選上面的圖示,想讓它自己編譯執行可以:(一般情況不建議改成即時編譯)
(1)勾選 Build project automatically
(2)Ctrl+Alt+Shift+/
撥出:Registry,回車勾選如圖所示選項
然後點選 close,然後就設定成功了,此時配合 LiveReload(需要啟動),程式碼將會直接反應到瀏覽器中。(注意需要反應一小會才可以看到結果)
四、禁用熱部署自動重啟
通過 application.properties 中配置:
#禁用熱部署,自動重啟功能 spring.devtools.restart.enabled=false
也可以在 SpringBoot 引導類中配置:
//設定關閉熱部署 System.setProperty("spring.devtools.restart.enabled","false");
五、專案重啟中的全域性配置
當有多個SpringBoot 模組時,可以通過全域性配置解決專案重啟的熱部署問題。
在當前使用者目錄下,新建.spring-boot-devtools.properties
:寫入
spring.devtools.restart.trigger-file=.trigger-file
此時,只有trigger-file
檔案發生變化,專案才會重新啟動
這個配置檔案對於電腦上任何使用 devtools 的模組都有效
感覺這有點麻煩,感覺這種設定針對的是第三步中設定的即時編譯,如果不設定即時編譯,那直接點 idea 上面那個小錘子圖示(Build Project)即可。
到此這篇關於一篇文章帶你搞定SpringBoot不重啟專案實現修改靜態資源的文章就介紹到這了,更多相關SpringBoot不重啟修改靜態資源內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!