近日,筆者在進行JSP開發過程中遇到了一個令人煩惱的問題:CSS無法被導入到JSP頁面中。經過仔細地排查,筆者終于解決了這個問題,并分享給大家。
首先,筆者在導入CSS的時候,使用了如下的代碼:
<link href="style.css" rel="stylesheet" type="text/css" />然而,筆者發現樣式并沒有被正確地應用到頁面上。經過仔細分析,筆者發現了這個問題的原因: JSP頁面會經過服務器的解析和編譯,最終會以Servlet的形式運行在容器中。而容器在解析這個頁面的時候,會以ServletContext.getRealPath()方法來獲取JSP頁面的絕對路徑,并將這個路徑作為ClassLoader的baseDir。 由于在Web容器的ClassLoader中,只有Web應用目錄中的文件才能被訪問到,而直接使用“style.css”是相對于JSP頁面的相對路徑,并不是絕對路徑,所以容器并不能正確地讀取到這個CSS文件。 解決這個問題也比較簡單,只需要將相對路徑改為絕對路徑即可。比如:
<link href="${pageContext.request.contextPath}/WEB-INF/css/style.css" rel="stylesheet" type="text/css" />其中,${pageContext.request.contextPath}是JSP頁面所在Web應用的上下文路徑,而“WEB-INF/css/style.css”則是CSS文件的絕對路徑。 當然,如果您的目錄結構較為復雜,還可以使用更加靈活的方式來指定CSS文件的路徑。 總的來說,無法導入CSS文件的問題,通常都是路徑問題所導致的。只要思路清晰,仔細分析,就能夠輕松地解決。
上一篇html5設置按鈕樣式
下一篇jsp頁面引入css失敗