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

前端技术 2023/09/07 JSP

在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;
}

本文地址:https://www.stayed.cn/item/20141

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。