遷移web資源到webapp目錄過程及注意事項

剛入職一家公司,項目時新搭建的,main目錄下只有java和resource目錄,沒有webapp目錄。emmm,沒有webapp目錄tomcat怎麼監測頁面的變動,怎麼熱加載嗎????
技術負責人告訴我寫完代碼重啓。這操作簡直喪盡天良,改一段代碼想看效果就要重啓???覺得996不夠要007嗎?作爲一個優秀的程序猿(hhh,老臉一紅),我們要避免做重複的和毫無意義的工作,不僅提高開發效率,提高公司項目的推進速度,也是節約自己的時間。(問君能幾何)。
本人就開始了一番大刀闊斧的包結構調整,遇到的問題不少,還好,八小時解決了。

1.建立webapp目錄

在這裏插入圖片描述
鼠標單擊main目錄,使用快捷鍵alt+insert選擇Directory,
在這裏插入圖片描述
在如下輸入框裏輸入webapp再按Enter鍵,文件夾創建完成。
在這裏插入圖片描述

2.將webapp目錄設置爲項目的web Module及web Resource Directory

(1)打開file-project structure
在這裏插入圖片描述
(2)在彈出的project Structure對話框中選擇 Modules,進行web模塊的添加操作(如果項目中已有web模塊可以跳過此步操作)
在這裏插入圖片描述
(3)指定Module和Resource的路徑
在這裏插入圖片描述
其中web.xml可以從其他項目裏複製一個
我的web.xml如下

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
		 id="WebApp_ID" version="2.5">


</web-app>

配置好後點擊確定,webapp 模塊配置就完成了

3.遷移你的web資源到webapp目錄下

這步比較簡單了,在IDE裏移動文件夾即可,有Refactor的資源IDE會自動加測出來幫你修改路徑。

4.修改配置文件

項目中使用的頁面配置映射地址方式爲spring.thymeleaf,如果是springmvc項目可以自行搜索頁面資源映射路徑配置。
我項目中的頁面目前放在這裏
在這裏插入圖片描述
配置文件路徑映射修改爲如下

spring.thymeleaf:
  prefix: file:./src/main/webapp/templates/
  suffix: .html
  mode: HTML5
  encoding: UTF-8
  #熱部署文件,頁面不產生緩存,及時更新, 在開發階段設置爲false
  cache: false

5.修改WebMvcConfigurer類,添加資源頭和映射關係

(1)找到你項目中WebMvcConfigurer的實現類
在這裏插入圖片描述

(2)在此類中找到重寫的addResourceHandlers方法,在其中添加靜態資源路徑(這裏添加後通過瀏覽器就能直接訪問tomcat下對應目錄的文件,如果不添加的話,瀏覽器訪問會被tomcat識別爲web請求,去尋找後臺接口了)
在這裏插入圖片描述
(3)找到重寫的addInterceptors方法(過濾器,就是spring的安全策略,允許瀏覽器直接訪問這些資源),把需要能直接訪問的文件夾或文件類型添加進去,它的起始目錄是第二步中配置好的ResourceLocations。
在這裏插入圖片描述

OK 現在試試啓動項目訪問文件吧,應該可以了,如果發現頁面上有不能訪問的靜態資源,可能是你頁面裏寫的資源路徑有誤。批量替換一下根目錄即可。

如果你使用的部署方式是war包構建,那麼文章看到這裏就足夠了。如果使用的部署方式是jar包,那麼請繼續看下去。

我項目中構建工具是Gradle,不是maven。。。
由於項目需要打成jar包部署爲docker鏡像再運行,所以打jar包就有嚴格的要求了。修改完webapp目錄後必須進行構建配置才能使webapp目錄下的文件打包到jar包內。配置方式如下:
(1)打開你項目中的build.gradle文件
在這裏插入圖片描述
(2)在jar一項中添加如下構建
在這裏插入圖片描述

    from('src/main/webapp/static'){
        into 'static'
    }
    from('src/main/webapp/templates'){
        into 'templates'
    }

tip:我項目中 src/main/webapp/static 目錄下放的是所有的js和css ,src/main/webapp/templates下放的是所有html頁面。

(3)作爲一個適配多環境的項目必然有多版本配置文件
在這裏插入圖片描述
除了local配置文件外,其他配置文件中將之前的spring.thymeleaf:配置項改回
在這裏插入圖片描述
好了,測試一下項目部署情況吧》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章