首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Spring MVC 訪問 JSP 頁面 CSS/JS 404:相對路徑與上下文路徑配置錯誤排查

     編輯:程式設計綜合問答

現象:Spring MVC 專案,JSP 頁面引入 CSS/JS 相對路徑,運行時 404,瀏覽器 Network 顯示請求路徑錯誤。

根本原因:相對路徑基於當前請求 URL,而非 JSP 文件位置

  • 請求 /user/list (Controller 映射),JSP 渲染 /WEB-INF/views/user/list.jsp。
  • JSP 中 <link href="css/style.css"> → 瀏覽器請求 /user/css/style.css (相對 /user/) → 404。
  • 實際靜態資源在 /resources/css/style.css 或 /static/css/style.css。

解決方案:使用上下文路徑絕對路徑

JSP 中 (JSTL core):


<%@ taglib prefix="c" uri="https://java.sun.com/jsp/jstl/core" %>
<link rel="stylesheet" href="<c:url value='/resources/css/style.css'/>">
<script src="<c:url value='/resources/js/app.js'/>"></script>
  • <c:url value='/...'/> 自動添加上下文路徑 (/appname),生成正確絕對路徑。
  • 或 ${pageContext.request.contextPath}/resources/... (EL 表達式)。

Spring MVC 靜態資源映射配置 (關鍵):


<mvc:resources mapping="/resources/**" location="/resources/" />
<!-- 或 Spring Boot 默認 /static/**, /public/**, /resources/**, /META-INF/resources/** -->
  • 將 /resources/** 請求映射到 classpath /resources/ 或 webapp/resources/ 目錄。
  • 確保 JSP 引用路徑與映射一致 (如 /resources/css/...)。

快速自查清單

  1. 瀏覽器 F12 Network 看 404 請求的 **完整 URL**。
  2. 對比 <mvc:resources> 映射路徑與 JSP 引用路徑是否一致。
  3. 檢查靜態文件是否真實存在於對應目錄 (src/main/webapp/resources/ 或 src/main/resources/static/)。
  4. 若用 Spring Boot,確認 spring.mvc.static-path-pattern 和 spring.resources.static-locations 配置。

**核心原則:JSP/HTML 中引用靜態資源永遠使用 <c:url> 或 ${contextPath} 生成絕對路徑,配合 <mvc:resources> 映射,徹底解決相對路徑 404 問題。**

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved