1. 程式人生 > >spring boot + maven專案引用靜態資源404問題

spring boot + maven專案引用靜態資源404問題

朋友昨天做了一個新的專案,用sring boot+maven聚合專案在web子專案中引用html和.js檔案時前臺一直報404錯誤。

用到了thymeleaf模板,專案配置檔案用的是spring boot 支援的.yml為字尾檔案做配置,這裡沒有做對js或者img或者jsp下的過濾/攔截。下面是專案目錄結構

yxt 專案  靜態資原始檔我是放在  src/main/resources/static/js/xx.js

專案啟動: localhost:8080  直接會訪問 templates下的index.html頁面,但是index的js沒有找到static下的jquery.js檔案


我當時的理解是spring boot 沒有對當前需要引用的靜態資原始檔做配置(攔截/過濾) ,一般SringMvc框架對靜態資原始檔的訪問是在它的spring-mvc.xml檔案中通過 mvc:resources 標籤對每一個需要訪問的靜態檔案/圖片 進行攔截

springMvc引用靜態資源處理方法:

<mvc:resources mapping="/js/**" location="/WEB-INF/views/js/" />

 <mvc:resources mapping="/jsp/**" location="/WEB-INF/views/jspOrhtml/" />

而我當前spring boot專案引用的是yml檔案 ,百度了一下yml的語法

spring boot 中以.yml為字尾訪問靜態資原始檔的處理方法

  resources:

      static-locations:["/templates/","/static/"]

意思是訪問src/main/resources/static 或者 templates下的檔案(靜態資源或html、jsp)

如果是application.properties   則解決方法是

spring.mvc.static-path-pattern=/static/**   

意思是訪問static下的靜態資原始檔

新增好後項目能夠正常引用其他靜態檔案了,我按照這種方式去對另一個專案進行靜態資原始檔的訪問發現依然報404 之後我對照了訪問靜態檔案的路徑、配置,以及html中引用的地方,發現依然是訪問不了。

之後我列印兩個專案啟動時的日誌檔案用beyond compare對比工具:

2018-05-11 23:09:52.391  INFO 8512 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2018-05-11 23:09:52.391 [localhost-startStop-1] INFO  o.s.boot.web.servlet.FilterRegistrationBean - Mapping filter: 'hiddenHttpMethodFilter' to: [/*]

以上是訪問不了js、css等靜態資原始檔的專案啟動列印日誌多出來的內容,大概意思是hiddenHttpMethodFilter過濾器沒有找到/*下的檔案,可能是後臺某個配置檔案沒有配置又或者是對映不到相應的內容,


我查看了.yml的配置檔案,發現兩個專案除了server 埠號不一樣意外,兩個spring boot的專案配置基本一樣,所以我排除了配置檔案的問題,前臺路徑也一樣,以及maven、jdk等jar包都沒有缺少,之後我在啟動的這個主入口(springBootApplication)裡面看到這個專案多了@enableWebMvc 註解,註釋掉這個註解後啟動可以引用靜態在資原始檔了

@enableWebMvc 把這個註解註釋掉後就能夠引用其他js檔案了。百度了下@enableWebMvc這個註解的含義:

表示啟動spring mvc特性,也就是說可以通過這個註解,然後在java程式碼程式碼中實現對js或css的頁面的過濾/攔截

相關推薦

spring boot + maven專案引用靜態資源404問題

朋友昨天做了一個新的專案,用sring boot+maven聚合專案在web子專案中引用html和.js檔案時前臺一直報404錯誤。用到了thymeleaf模板,專案配置檔案用的是spring boot 支援的.yml為字尾檔案做配置,這裡沒有做對js或者img或者jsp下的

Spring-Boot整合freemarker引入靜態資源css、js等(轉)

mark pan 創建 line path main 實現 content -m 一、概述springboot 默認靜態資源訪問的路徑為:/static 或 /public 或 /resources 或 /META-INF/resources 這樣的地址都必須定義在src/

Spring-Boot整合freemarker引入靜態資源css、js等

一、概述 springboot 預設靜態資源訪問的路徑為:/static 或 /public 或 /resources 或 /META-INF/resources 這樣的地址都必須定義在src/main/resources目錄檔案中,這樣可以達到在專案啟動時候可以自動載入為專案靜態地址目錄到cl

Spring Boot maven專案打包

一、maven構建Spring Boot專案 1、專案路徑 2、專案說明 1)此專案是多模組spring boot專案 2)專案模組分層如下: 模型層:model 持久層:persistence 表示層:web 3、打包命令【開啟命令列視窗】 1)cd 專案目錄 cd /Users

spring boot設定多個靜態資源目錄

@Configuration public class AcbplatformConfigurer extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHa

使用IDEA建立一個Spring Boot Maven專案

1.開啟IDEA軟體,點選左上角File,然後: 2.建立空專案 3.選擇Project儲存位置這裡的project相當於Eclipse工作空間 4.建立Modules(相當於Ecli

idea中的spring boot maven專案的依賴和pom.xml檔案不一致的解決辦法

今天用idea建立了一個spring boot專案,包含了spring security,在pom檔案和專案依賴都存在security依賴的情況下,對專案的訪問連結都會跳轉到輸入賬號密碼的驗證登入頁面,程式碼和跳轉如下:   為了驗證security的

Spring Boot Maven專案生成jar包,部署到Linux伺服器執行

Spring Boot生成jar ,本篇只針對於 idea 第一部分 生成jar 1.首先進入“Project Structure” ,之後點選 “Artifacts” 2.點選 + 號,選擇JAR 3.進入選擇 ,最後點選 OK

spring boot 解決無法訪問靜態資源

在application.yaml中加入: spring.jersey.application-path: /rest 訪問controller中的方法:http://localhost:port/rest/xxx 將靜態資源放在resources的static下,訪

spring-boot 讀取不到靜態資源

作為一名front end, 在使用spring boot 對映靜態資源的時候, 發現無論怎麼寫registry.addResourceHandler("/**").addResourceLocations("file:/home/ubuntu/web/");registry

spring Boot jar包工程下引用靜態資源

     最近在寫一個sprin-boot專案。其中涉及到了PDF跟字型檔案的引用。     由於主工程打的是jar包,所以,他不像傳統的web專案那樣,可以把靜態資源放在web-info下面。而我們引用的jar包,給pdf設定水印需要傳入引用的路徑。     期初在網上查了

spring-mvc專案靜態資源始終報錯的解決方法之一

需要在配置類中重寫下面的方法: @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { //靜態資源不需要springmvc處理 configurer.enable

打包antd-pro專案時,靜態資源404的解決方案

在config/config裡面的export default裡面加入以下兩行 base: '/pet-mgr' ,   //定義路由的基本路徑   publicPath: '/pet-mgr/'

idea 建立spring boot + maven + mybatis 專案並打包部署

前言: 由於在程式碼中使用註解編寫sql 會導致後期難以維護和混亂, 這裡使用的mybatis是 用xml 檔案。連線的是oracle12c 步驟: 1:  點選next:  填寫: group   , artifact ,  packaging 選war

web專案改成spring boot maven 引入jar包不一致啟動報錯

          mavn 部署引入jar包不對,不提示找不到jar包,而是提示: Error starting ApplicationContext. To display the conditions report re-run your

spring boot maven版普通JAVA專案

 我們以前使用Spring框架的時候,我們需要首先在(如果你使用Maven的話)pom檔案中增加對相關的的依賴(使用gradle來構建的話基本也一樣)然後新建Spring相關的xml檔案,而且往往

spring boot 專案打包時報錯 Execution default of goal org.springframework.boot:spring-boot-maven-plugin:1.5.

異常資訊如下 [ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.5.9.RELE

spring-boot-maven-plugin插件作用

sdn ica per instance replace -m project static pan 轉自:http://blog.csdn.net/hotdust/article/details/51404828 OM 文件中添加了“org.springframework

引用靜態資源時加上時間戳,處理瀏覽器緩存問題

文字 sql 語句 流量 命令 訂餐系統 5% 文章 教程 res 參考其他文章列舉存儲過程的優劣,據此分析目前智慧電站總項目下,還有那些地方的數據庫操作,適合使用存儲過程進行優化。 存儲過程是什麽? 儲存程序 (Stored Procedure),又可稱預儲程序或者存儲

新手快速生成Spring boot maven工程

配置 部分 ring nbsp start 新手 boot style oot   Spring boot本人實際使用也有一定時間了,最近抽空看了點官方文檔,然後發現官網提供了自動生成簡單Spring Boot工程的功能。   很喜歡這個功能,太適合入門同學使用了,特別是聯