成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_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国内精品久久久久久久
午夜av一区二区| 中文字幕第一页久久| 国产欧美精品一区aⅴ影院| 国产精品亚洲专一区二区三区| 久久先锋资源| 亚洲电影第三页| 亚洲免费婷婷| 午夜影视日本亚洲欧洲精品| 久久一区精品| 蜜桃传媒麻豆第一区在线观看| 男女精品视频| 亚洲成av人片在www色猫咪| 激情偷拍久久| 亚洲色图另类专区| 99在线|亚洲一区二区| 亚洲激情一二三区| 欧美一级专区| 日本女人一区二区三区| 色婷婷av一区二区三区软件| 日韩精彩视频在线观看| 在线视频一区二区三| 免费观看一级特黄欧美大片| 欧美影院精品一区| 国产麻豆成人精品| 日韩亚洲欧美一区二区三区| 成人手机在线视频| 国产视频一区在线观看| 国产精品国产三级国产专区53| 国产精品视频九色porn| 亚洲天堂黄色| 亚洲一区欧美一区| 色欧美片视频在线观看在线视频| 美女免费视频一区二区| 91精品国模一区二区三区| 成人久久久精品乱码一区二区三区| 久久一区二区三区国产精品| 含羞草久久爱69一区| 国产精品网曝门| 国产日韩欧美三级| 亚洲成av人片在线| 欧美一区二区三区在线观看 | 亚洲伦理在线精品| 麻豆av一区二区三区| 国内外成人在线| 久久先锋影音av| 亚洲巨乳在线| 日本不卡不码高清免费观看 | 亚洲精品ww久久久久久p站| 亚洲一区二区精品在线观看| 美女久久久精品| 日韩午夜激情av| 欧美高清视频一区| 亚洲一区在线视频| 欧美精品在线一区二区| 欧美一区二区| 亚洲中国最大av网站| 欧美日韩国产大片| 99国内精品久久| 亚洲精品国产无套在线观| 色婷婷久久一区二区三区麻豆| 国产精品一区一区三区| 欧美激情自拍偷拍| 亚洲在线观看| 国产不卡视频在线播放| 国产精品福利一区| 欧美色精品在线视频| 99久久精品国产观看| 亚洲一区在线视频| 正在播放亚洲一区| 国产主播一区| 另类综合日韩欧美亚洲| 中文成人综合网| 久久野战av| aaa亚洲精品| 亚洲国产一区二区三区青草影视| 欧美精品国产精品| 狠狠久久综合婷婷不卡| 蜜臀va亚洲va欧美va天堂| 2024国产精品| 色老头久久综合| 99久久国产综合精品色伊| 亚洲一级片在线观看| 日韩三级高清在线| 国产乱码精品| 99精品国产一区二区三区不卡| 香蕉成人伊视频在线观看| 久久久亚洲高清| 久久久久国产精品一区二区| 92国产精品观看| 蜜臀a∨国产成人精品| 国产欧美日韩亚州综合| 在线这里只有精品| 欧美日韩妖精视频| 精品亚洲免费视频| 亚洲欧美激情插 | 国产资源精品在线观看| 中文字幕一区二区三区在线播放| 欧美日韩一区在线| 亚洲日本国产| 69堂成人精品免费视频| 亚洲性色视频| 国产精品综合av一区二区国产馆| 亚洲免费观看高清完整版在线| 56国语精品自产拍在线观看| 国产一区二区高清不卡| 北条麻妃一区二区三区| 免费成人小视频| 亚洲视频狠狠干| 国产精品老牛| 图片区小说区国产精品视频| 日韩精品一区二区三区视频在线观看 | 亚洲精品久久久蜜桃| 日韩免费福利电影在线观看| 亚洲综合社区| 成人开心网精品视频| 美女网站色91| 亚洲精品第一国产综合野| 久久欧美中文字幕| 欧美久久久久久久久久| 久久精品一区二区国产| 91麻豆精东视频| 国产精品一区免费视频| 日韩黄色免费电影| 亚洲欧美日韩人成在线播放| 久久这里都是精品| 在线综合+亚洲+欧美中文字幕| 亚洲免费在线精品一区| 欧美视频福利| 成人在线综合网| 久久99精品久久久久久动态图 | 北条麻妃国产九九精品视频| 蜜桃av噜噜一区| 亚洲1区2区3区视频| 亚洲人成影院在线观看| 久久综合丝袜日本网| 欧美精品在线一区二区| 日本伦理一区二区| 一区二区三区高清视频在线观看| 欧美久久影院| 99久久精品国产一区二区三区| 国产黄色精品网站| 久久99九九99精品| 日本不卡视频在线| 天天色图综合网| 亚洲成人黄色小说| 一区二区三区精品| 亚洲三级在线观看| 综合欧美亚洲日本| 国产精品嫩草影院com| 欧美精品一区二区在线观看| 欧美日韩国产影片| 91成人在线免费观看| 久久男女视频| 一道本成人在线| 免费看黄裸体一级大秀欧美| 激情成人亚洲| 欧美亚州在线观看| 欧美日韩一区在线播放| 欧美国产精品| 91捆绑美女网站| 91丨国产丨九色丨pron| 9色porny自拍视频一区二区| 成人美女在线观看| 成人黄动漫网站免费app| 国产精品一区二区视频| 精品午夜久久福利影院 | 极品美女销魂一区二区三区| 久久精品噜噜噜成人88aⅴ| 日本成人中文字幕在线视频| 天天做天天摸天天爽国产一区| 亚洲午夜精品网| 亚洲成人在线免费| 午夜精品久久久久久久99水蜜桃| 午夜伊人狠狠久久| 日韩高清不卡在线| 婷婷激情综合网| 日韩av中文在线观看| 偷拍日韩校园综合在线| 香港成人在线视频| 日本免费新一区视频| 老鸭窝一区二区久久精品| 美女视频黄久久| 韩国v欧美v日本v亚洲v| 国产乱对白刺激视频不卡| 国产精品一二三区在线| 国产成人av电影免费在线观看| 成人激情免费网站| 欧美91大片| 红桃视频国产精品| 最近看过的日韩成人| aa级大片欧美三级| 亚洲一区二三| 久久天堂国产精品| 欧美视频在线一区| 日韩欧美国产综合| 中文字幕不卡的av| 亚洲妇女屁股眼交7| 波多野结衣欧美| 色综合天天狠狠| 亚洲激情校园春色|