在jsp頁面中添加base,可用相對路徑:
<% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %>
然后在<head>標簽內添加base
<base href="<%=basePath%>"></base>
在本頁面中“直接”引入外部文件時,可直接
<script src="js/common/jquery-1.11.1.min.js" language="javascript" type="text/javascript"></script> <script src="js/common/frame.js" language="javascript" type="text/javascript"></script> <link href="css/common/frame.css" rel="stylesheet" type="text/css" /> <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />
同理,本頁面中的css類
.top { position: absolute; left: 0; top: 95px; right: 0; height: 120px; background: url(images/common/title.jpg) repeat-x }
====================例外情況:引入的外部css、js文件又引入image等時=================================
這時候如果也用相對路徑的話,因為已經不在了jsp頁面中,此時相對路徑是相對於本css文件所在的目錄:
如:棠棣新系統,index.jsp頁面中引入的css文件
<link href="css/common/frame.css" rel="stylesheet" type="text/css" />
這時在jsp頁面中,引入的js/common/frame.js是從網站跟目錄開始尋找,沒問題。
但在frame.js中有如下css
.show_menu{ background-image: url(images/left_bg.gif); background-repeat: repeat-y; background-position:285px 51px; }
這種情況下直接url(images/left_bg.gif);是默認從本css文件所在目錄(/css/common/frame.css)+url(images/left_bg.gif),所以此處需要的image需要單獨配置,
改成
.show_menu{ background-image: url(../../images/left_bg.gif); background-repeat: repeat-y; background-position:285px 51px; }