在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; }
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决