IDEA解決SSM項目的靜態資源路徑問題:HTML,CSS,JS--詳解

IDEA解決SSM項目的靜態資源路徑問題:HTML,CSS,JS

 

直接上圖(項目目錄結構):css

咱們主要關注webapp。html

如上圖,建議把js,css,layui,首頁等文件放在WEB-INF外部,WEB-INF放程序的主要網頁,index頁面,welcome,各類管理頁面等(以下圖)web

 

如今咱們進入了重頭戲了:路徑設置。ajax

 

1、上圖發現,咱們的login頁面在webapp下,就是項目啓動的一級目錄下spring

  一、此時找到登錄頁面有兩種方法:在web.xml配置爲歡迎界面,項目啓動就直接跳轉此頁面。瀏覽器

   頁面地址mvc

 

  二、輸入一級目錄下的systemLogion.htmlapp

 

咱們推斷出此訪問路徑按照webapp爲根路徑,即http://localhost:8080/empmanage  這一坨表明webapp,其實從target文件也能夠映照這個結論webapp

 

2、上面找到了根路徑,咱們開始設置springMVC-web.xml文件(主要是釋放靜態資源的路徑----若不釋放,系統運行後會把這些資源進行攔截)異步

 

<!--釋放靜態資源-->
<mvc:default-servlet-handler></mvc:default-servlet-handler>
<mvc:resources mapping="/images/**" location="/images/"></mvc:resources>
<mvc:resources mapping="/css/**" location="/css/"></mvc:resources>
<mvc:resources mapping="/js/**" location="/js/"></mvc:resources>
<mvc:resources mapping="/layui/**" location="/layui/"></mvc:resources>
<mvc:resources mapping="/pages/**" location="/pages/"></mvc:resources>

 

  一、釋放了靜態資源文件以後,在系統運行後,咱們能夠從http://localhost:8080/empmanage/js/cloud.js    這個路徑直接訪問js等文件(除了WEB-INF內的其餘任何文件)

 

  二、可是要注意一點:系統執行到不一樣的頁面,是根據當前頁面請求的地址,去找相應的js等文件。

  好比咱們的systemlogin.html頁面的js,css路徑設置以下圖:

  可是WEB-INF裏面的操做頁面的css,js路徑以下:

 

  經過對比咱們發現,WEB-INF頁面的路徑多了一個-----   「 ../  」 ------

  

3、這是由於:當咱們在登錄頁面和WEB-INF下的index頁面時,請求地址(瀏覽器地址)分別爲

 

 

  這時登錄頁面加入js/cloud.js咱們能夠訪問到相應的js頁面,因此登錄頁面的js路徑:js/**

  可是index頁面是通過一次controller進行跳轉以後的路徑(user/index.do ---這是在一個controller裏的),因此index頁面的css,js路徑: ../js/**

4、當咱們在WEB-INF的index頁面中須要執行ajax無頁面刷新異步請求的時候,如:

  此時請求controller的地址和js的地址相似,當前瀏覽器的地址不變,咱們須要  ../  回到根路徑,而後去找controller(如上圖)。

 

編寫不易,求個當心心吧。。。。

本人如有敘述不當之處,請各位看官不吝賜教!

相關文章
相關標籤/搜索