成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

SpringBoot中配置Web靜態資源路徑的方法

瀏覽:190日期:2023-04-24 10:00:08

介紹: 本文章主要針對web項目中的兩個問題進行詳細解析介紹:1- 頁面跳轉404,即controller轉發無法跳轉頁面問題;2- 靜態資源文件路徑問題。

項目工具: Intelij Idea, JDK1.8, SpringBoot 2.1.3

正文:

準備工作:通過Idea創建一個SpringBoot-web項目,此過程不做贅述,創建完成后項目結構如下圖:

SpringBoot中配置Web靜態資源路徑的方法

1- 創建一個controller代碼如下:

package com.example.webpractice.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class DemoController { @RequestMapping('demo') public String demo() { System.out.println('進入controller中的demo方法!'); /*注意:這里返回值有后綴名,如何省略后綴名后面有介紹*/ return 'myPage.html'; }}

2- 在 web-practicesrcmainresourcestemplates路徑下創建html頁面,取名“myPage”,代碼如下:

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>Title</title></head><body> <h1>Welcome to myPage!</h1></body></html>

此時運行項目,會發現報404問題,同時查看Idea控制臺,打印顯示進入controller方法。

SpringBoot中配置Web靜態資源路徑的方法

3- spring.resources.static-location登場

打開application.yml文件,進行如下配置(默認項目中配置文件為application.properties,修改后綴名即可,因我個人喜歡使用yml文件),重新運行項目并訪問地址:localhost:8080/demo 會發現頁面跳轉成功。

spring: resources: static-locations: classpath:templates/

原因分析:spring.resources.static-location參數指定了Spring Boot-web項目中靜態文件存放地址,該參數默認設置為:classpath:/static,classpath:/public,classpath:/resources,classpath:/META-INF/resources,servlet context:/,可以發現這些地址中并沒有/templates這個地址。當配置文件中配置此項后,默認配置失效,使用自定義設置。這里涉及到兩個概念:

(1)classpath: 通俗來講classpath對應的項目中:web-practicesrcmainresources 文件目錄。如:“classpath: templates/” 即是將resources目錄下的templates文件夾設置為靜態文件目錄。更深一步講classpath路徑為:文件編譯后在target/classes目錄下的文件。

(2) 靜態文件目錄:通俗理解為存放包括 :.html;.jsp;CSS;js;圖片;文本文件等類型文件的目錄。這些文件都可以通過瀏覽器url進行訪問。同時controller中轉發的文件目錄也必須被設置為靜態文件目錄,這就是增加了該參數以后就可以正常訪問的原因。

4- spring.mvc.view.prefix/suffix登場

現在頁面已經可以正常轉發,我們有了新的想法,我希望在templates文件夾中創建一個html文件夾用于專門存放頁面文件,另外在每次使用controller進行轉發是都要標明后綴名.html,這很麻煩,有沒有統一處理的方案,答案當然是有!

修改后項目結構如下:

SpringBoot中配置Web靜態資源路徑的方法

controller方法修改如下:

package com.example.webpractice.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class DemoController { @RequestMapping('demo') public String demo() { System.out.println('進入controller中的demo方法!'); //如果不在appliation.yml文件中添加前后綴信息,此處返回語句為 //return 'html/myPage.html' return 'myPage'; }}

application.yml文件修改如下:

spring: resources: static-locations: classpath:templates/ mvc: view: prefix: html/ suffix: .html

再次運行項目即可。通過測試得知prefix/suffix是在controller返回語句前后添加前后綴信息。

5- 配置多個靜態文件路徑:當我們在頁面中添加圖片,并且將圖片存放在resources/static/pic路徑下,如下圖所示:

SpringBoot中配置Web靜態資源路徑的方法

修改myPage.html如下:

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>Title</title></head><body> <h1>Welcome to myPage!</h1> <img src='https://rkxy.com.cn/pic/pig.jpg' /></body></html>

之后重啟項目,會發現圖片并沒有成功加載!如下:

SpringBoot中配置Web靜態資源路徑的方法

原因是之前我們配置的靜態文件目錄只包含classpath:templates/,static目錄還不是合法的存儲靜態文件目錄,我們只需要在后面追加上static目錄即可。修改application.yml文件如下:

spring: resources: static-locations: classpath:templates/,classpath:static/ mvc: view: prefix: html/ suffix: .html

修改后重啟項目刷新頁面,一切正常!

6- 關于spring.mvc.view.static-path-pattern

該參數用來規定訪問靜態文件的路徑格式,該參數默認值為:“/**” 表示所有路徑,現將該參數修改為:“/static/**” 觀察現象

spring: resources: static-locations: classpath:templates/,classpath:static/ mvc: view: prefix: html/ suffix: .html static-path-pattern: /static/**

重啟項目,發現頁面不能加載404錯誤!

要解決該問題需要修改兩個地方:

(1) 修改spring.mvc.view.prefix參數值為:static/html/ ;該修改為了controller轉發時可以找到文件路徑;

(2)修改myPage頁面的圖片地址如下:

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>Title</title></head><body> <h1>Welcome to myPage!</h1> <img src='https://rkxy.com.cn/static/pic/pig.jpg' /></body></html>

原因分析:static-path-pattern規定的時訪問靜態頁面的路徑類型,這里規定訪問靜態頁面必須為:localhost:8080/static/***的方式才能訪問到靜態資源。static-path-pattern并不是規定實際的靜態文件訪問路徑,而是規定了一種url標記,只有遵循該標記的規則才能訪問靜態文件。

擴展:

1- spring.resources.static-locations參數除了規定classpath:路徑下的文件目錄為靜態文件目錄,還可以規定項目以外的位置,如設置:E:/test文件夾目錄為靜態文件存儲目錄,如下:

spring: resources: static-locations: classpath:templates/,classpath:static/,file:E:/test

2- 頁面訪問過程如下:

瀏覽器發送請求,先匹配SpringMVC中RequestMapping列表,匹配到后根據controller返回值定位靜態資源目錄,并返回給客戶;如果RequestMapping中未匹配到,則判斷是不是靜態文件目錄,如果是的話直接到靜態文件目錄對應路徑下查詢文件,查詢到返回,未查詢到不返回。

3- static-location配置的目錄列表都被視為根目錄,如果兩個目錄中相同文件目錄下存儲了同名同類型文件,返回在static-locations配置靠前的根目錄下的內容。

4- static-path-pattern參數規定了靜態文件存儲路徑,在controller的RequestMapping中應該避免設置該路徑相同的訪問路徑。

到此這篇關于SpringBoot中配置Web靜態資源路徑的方法的文章就介紹到這了,更多相關SpringBoot配置Web靜態資源路徑內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产伦理一区| 亚洲国产精品久久不卡毛片| 亚洲人一二三区| 欧美xxx在线观看| 日韩一区二区高清| 国模套图日韩精品一区二区| 美女诱惑一区| 一区二区成人在线| aa日韩免费精品视频一| 亚洲私人黄色宅男| 亚洲欧洲日本国产| 综合久久一区二区三区| 激情另类综合| 亚洲欧美电影一区二区| 精品91视频| 亚洲欧美日韩国产一区二区三区| 精品av久久久久电影| 中文字幕一区二区三区四区不卡 | 一本久道综合久久精品| 中文在线一区二区 | 成a人片国产精品| 欧美成人一区二区三区片免费| 国产精品自在在线| 欧美大肚乱孕交hd孕妇| 97久久精品人人爽人人爽蜜臀| 久久久亚洲午夜电影| 欧美成人一区二区在线| 亚洲国产电影在线观看| 午夜性色一区二区三区免费视频| 精品国产免费视频| 91麻豆国产香蕉久久精品| 久久中文字幕电影| 欧美大香线蕉线伊人久久国产精品| 国产午夜精品久久久久久免费视 | 国产99久久久国产精品潘金网站| 欧美成人激情免费网| 91在线小视频| 欧美国产1区2区| 一本久道久久综合婷婷鲸鱼| 亚洲3atv精品一区二区三区| 在线区一区二视频| 国产乱理伦片在线观看夜一区 | 91精品婷婷国产综合久久| 国产91精品欧美| 久久久综合激的五月天| 红桃视频亚洲| 亚洲国产日韩一级| 在线观看91视频| 国产成人av自拍| 欧美国产欧美亚州国产日韩mv天天看完整 | 欧美一区二区在线免费播放| 成人影视亚洲图片在线| 国产无人区一区二区三区| 99亚洲一区二区| 免费成人av资源网| 欧美成人在线直播| 亚洲图色在线| 日韩电影在线观看一区| 555夜色666亚洲国产免| 欧美不卡在线| 亚洲国产成人精品视频| 欧美精品久久99久久在免费线| 99视频超级精品| 樱花影视一区二区| 7777精品伊人久久久大香线蕉| 97久久超碰精品国产| 一级中文字幕一区二区| 欧美妇女性影城| 亚洲视频欧美在线| 蜜臀久久久久久久| 久久久亚洲欧洲日产国码αv| 日韩一级欧洲| 国产一区二区网址| 国产精品视频一区二区三区不卡| 亚洲在线网站| 国产乱子轮精品视频| 中文字幕亚洲一区二区va在线| 久久影院亚洲| www.欧美亚洲| 亚洲国产成人tv| 欧美一区二区三区四区久久| 激情欧美一区二区三区| 久久国产成人午夜av影院| 国产日韩欧美a| 91福利视频在线| 午夜性色一区二区三区免费视频| 亚洲国产精品精华液网站| 欧美成人性福生活免费看| 国产精品视区| 成人午夜视频在线| 亚洲国产精品精华液网站| 日韩欧美高清一区| 亚洲精品1234| 国产一区二三区| 综合久久久久久| 51精品秘密在线观看| 激情欧美一区二区三区| 国产一区二区三区免费看| 国产精品日韩成人| 欧美午夜视频网站| 不卡的电视剧免费网站有什么| 亚洲国产欧美一区二区三区丁香婷| 欧美日韩电影在线播放| 亚洲高清自拍| 成人亚洲精品久久久久软件| 亚洲主播在线观看| 精品成a人在线观看| 久久一区亚洲| 欧美全黄视频| 国产美女精品在线| 亚洲综合区在线| 久久久久国产精品麻豆ai换脸| 日本道精品一区二区三区| 国产精品二区在线| 国产精品18久久久久久久久| 亚洲一区二区三区视频在线| 国产亚洲视频系列| 欧美一区中文字幕| 色综合av在线| 亚洲高清网站| 91蜜桃网址入口| 国产最新精品免费| 亚洲成人精品一区二区| 欧美国产精品一区二区| 制服丝袜国产精品| 狂野欧美一区| aⅴ色国产欧美| 99精品国产99久久久久久白柏| 日韩不卡一区二区三区| 亚洲视频资源在线| 精品国产精品网麻豆系列| 欧美四级电影在线观看| 国产伦精品一区二区三| 国产精品www.| 91伊人久久大香线蕉| 国产在线一区二区| 五月婷婷综合网| 亚洲黄色片在线观看| 国产欧美一区二区精品性色超碰| 欧美一区二区三区视频免费播放| 色综合久久久久综合| 一区二区国产在线观看| 欧美精品七区| av网站免费线看精品| 精品一区二区三区的国产在线播放| 午夜婷婷国产麻豆精品| 亚洲人成电影网站色mp4| 欧美经典一区二区| 精品国精品国产| 欧美一区二区在线免费观看| 在线观看成人免费视频| 美女精品国产| 国产毛片久久| 亚洲激情一区| 激情综合视频| 亚洲视频观看| 国语精品一区| 国产一区二区三区无遮挡| 色综合天天综合狠狠| eeuss国产一区二区三区| 国产电影一区在线| 国产综合久久久久久久久久久久| 奇米精品一区二区三区在线观看 | 精品久久人人做人人爽| 欧美日韩在线观看一区二区 | 久久久久久久久久久久久久一区| 99国产精品久久久久久久成人热| 国产精品地址| 欧美日韩视频在线一区二区观看视频 | 国产一区二区中文| 91网站在线播放| 99精品欧美一区二区三区综合在线| 丁香另类激情小说| 国产 日韩 欧美大片| 国产99久久久国产精品免费看| 国产精选一区二区三区| 国产专区欧美精品| 九九九久久久精品| 国内精品伊人久久久久av一坑| 精品系列免费在线观看| 久草精品在线观看| 激情久久久久久久久久久久久久久久| 激情久久五月天| 国产黄人亚洲片| 东方aⅴ免费观看久久av| 成人精品电影在线观看| 99热99精品| 欧美激情视频一区二区三区免费| 欧美久久九九| 亚洲国产欧美国产综合一区| 国产日韩欧美精品| 性娇小13――14欧美| 日本黄色一区二区| 欧美日韩久久一区| 日韩精品在线一区二区| 久久久国产午夜精品| 17c精品麻豆一区二区免费| 亚洲综合丁香婷婷六月香| 天天综合天天做天天综合| 精品影视av免费|