在 JSP 中引入 JS 時,直接寫相對路徑如 src="js/list.min.js",若 JSP 位於不同層級目錄(如 /WEB-INF/views/xxx.jsp vs /xxx.jsp),會導致 404。
<script src="${pageContext.request.contextPath}/js/list.min.js"></script>
或簡寫(需啟用 EL 表達式):
<script src="${ctx}/js/list.min.js"></script>
<!-- 頁面頂部定義:var ctx = "${pageContext.request.contextPath}"; -->
<%@ taglib prefix="c" uri="https://java.sun.com/jsp/jstl/core" %>
<script src="<c:url value='/js/list.min.js'/>"></script>
<script src="/myapp/js/list.min.js"></script>
缺點:項目部署路徑變更時需修改。
webapp/
├── js/
│ └── list.min.js
├── WEB-INF/
│ └── views/
│ └── findCircleMember.jsp
└── findCircleMember.jsp
在 findCircleMember.jsp 中引入:
<script src="${pageContext.request.contextPath}/js/list.min.js"></script>
request.getContextPath() 在 script 標籤中拼接(易出錯)。