問題:當在jsp使用相對路徑引入其他js檔案的時候,通過浏覽器通路該頁面一切正常,但是通過伺服器跳轉到該頁面,就會出現檔案404的錯誤。
解答:同樣一個頁面,用戶端跳轉與伺服器跳轉的相對路徑是不一樣的。伺服器的跳轉都是相對于http://localhost:8080/項目名/,而用戶端的跳轉是相對于頁面所在檔案夾的位置。
解決該問題有兩種方案
首先提供一個項目目錄結構:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CNyQzM1cTYwQ2MyIjMxUGOmRTZjdTZjlDMlVTY2MGM58CX4IzLcdDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
一:使用<base>标簽
[html] view plain copy
<%
String path = request.getContextPath();
String basePath = request.getScheme()+ "://" +request.getServerName()+ ":"+request.getServerPort()+path+ "/" ;
%>
<base href="<%=basePath%>">
在demo.jsp頁面添加上面一段代碼,basePath的值http://localhost:8080/項目名/ , 它的作用就是限制該jsp頁面url路徑都要根據它的所在位置來定,這時候在1.jsp頁面可以這樣引入jquery.min.js
<script src="js/jquery.min.js" type="text/javascript"></script>
這樣不管是用戶端通路還是服務端跳轉通路都沒有問題
二:使用絕對路徑 ${pageContext.request.contextPath}
<script src="${pageContext.request.contextPath}/js/jquery.min.js" type="text/javascript"></script>
福利一:前端,Java,産品經理,微信小程式,Python等8G資源合集大放送:https://www.jianshu.com/p/e8197d4d9880
福利二:微信小程式入門與實戰全套詳細視訊教程
領取方式:
如果需要學習視訊,歡迎關注 【程式設計微刊】微信公衆号,回複【領取資源】一鍵領取以下所有幹貨資源,擷取更多有用技術幹貨、文檔資料。所有文檔會持續更新,歡迎關注一起成長!