jsp、css中引入外部资源相对路径的问题

在jsp页面中添加base,可用相对路径:javascript

<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>

 

而后在<head>标签内添加basecss

<base href="<%=basePath%>"></base>

 

 在本页面中“直接”引入外部文件时,可直接java

<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类jquery

.top {
    position: absolute;
    left: 0;
    top: 95px;
    right: 0;
    height: 120px;
    background: url(images/common/title.jpg) repeat-x
}

====================例外状况:引入的外部css、js文件又引入image等时=================================jsp

这时候若是也用相对路径的话,由于已经不在了jsp页面中,此时相对路径是相对于本css文件所在的目录:网站

 

如:棠棣新系统,index.jsp页面中引入的css文件url

<link href="css/common/frame.css" rel="stylesheet" type="text/css" />

这时在jsp页面中,引入的js/common/frame.js是从网站跟目录开始寻找,没问题。spa

但在frame.js中有以下csscode

.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须要单独配置,blog

改为

.show_menu{
    background-image: url(../../images/left_bg.gif);
    background-repeat: repeat-y;
    background-position:285px 51px;
}
相关文章
相关标签/搜索