javascript相对路径,绝对路径问题

fjc04091125 2011-01-28 02:34:27
小弟的jsp页面需要调用一个公共js方法:coverController.js;这个方法中有如下语句需要调用一个工程中的图片:
message : '<h1><img src="../../image/busy.gif" />正在处理,请稍后...</h1>'
图片路径是使用的相对路径
当页面这样调用方法时:<script type="text/javascript" src="../../script/coverController.js"></script>
可正确显示busy.gif图片,
当页面<script type="text/javascript" src="../script/coverController.js"></script>这样调用方法的时候,图片无法显示
,请问怎么写应用路径才能全都正确显示图片
...全文
4725 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
chkmouse 2011-11-14
  • 打赏
  • 举报
回复
...楼主是jsp !!!
fjc04091125 2011-02-09
  • 打赏
  • 举报
回复
怎么用啊,我是页面通过
<script type="text/javascript" src="../../script/coverController.js"></script>

<script type="text/javascript" src="../script/coverController.js"></script>
nizhicheng 2011-02-09
  • 打赏
  • 举报
回复
请用绝对路劲
fjc04091125 2011-02-09
  • 打赏
  • 举报
回复
这是js方法,不是jsp页面,不能定义<%%>
kai27ks 2011-01-29
  • 打赏
  • 举报
回复
楼主你没看我写的吗?getContextPath不够啊。
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
fjc04091125 2011-01-28
  • 打赏
  • 举报
回复
调用的js方法如下:
var JSCoverController = {
createCover : function(frameName) {
frameName.document
.write("<div id='waitingCover' style='position:absolute; z-index:10; visibility:hidden'><TABLE WIDTH=100% BORDER=0 CELLSPACING=0 CELLPADDING=0><tr height='100'><td></td></tr><TR><td width=30%></td><TD><table WIDTH=100% bgcolor=6699CC BORDER=0 CELLPADDING=1><tr><td><TABLE WIDTH=100% height=70 BORDER=0 cellspacing=0 ><TR><td bgcolor=FFFFFF align=center><img src='/image/gears_an.gif' width='80' height='70'></td></tr><td bgcolor=FFFFFF align=center><font size=-1><span id=loadingText contenteditable=true>���ڴ���, ���Ժ�...</span></font></td></tr></table></td></tr></table></td><td width=30%></td></tr><tr height='100'><td></td></tr></table></div>");
},
showCover : function(frameName, messageStr) {
if (!frameName.document.all.waitingCover) {
this.createCover(frameName);
}
frameName.scroll(0, 0);
if (messageStr != null)
frameName.document.all.loadingText.innerHTML = messageStr;
frameName.document.all.waitingCover.style.visibility = "visible";
},

showBlock : function(id1, msg) {
$('#' + id1).click(function() {
if (msg == undefined) {
//$.blockUI();
$.blockUI( {
message : '<h1><img src="<%=request.getContextPath()%>/image/busy.gif" />正在处理,请稍后...</h1>'
});
} else {
$.blockUI( {
message : '<h1><img src="../../image/busy.gif" /> ' + msg + '</h1>'
});
}
});
}
}


图片还是没显示出来,修改为'<h1><img src="../../image/busy.gif" />正在处理,请稍后...</h1>'
就可以调用
wula0010 2011-01-28
  • 打赏
  • 举报
回复
js里,用绝对路径呗,为什么不用呢?
kai27ks 2011-01-28
  • 打赏
  • 举报
回复
2种方法:第一种:利用base属性
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<head>
<base href="<%=basePath%>">
</head>
这样你的图片的相对路径就是项目的根路径了,比如在/image/aa.gif 你只需<src =/image/aa.gif
第二种:每次图片前使用<%=basePath =%>/image/aa.gif
这2种其实都是用的绝对路径。不建议你使用相对路径 。很麻烦 还要考虑路径层次。
pigofdengchunyan 2011-01-28
  • 打赏
  • 举报
回复
路径问题已经是个老掉牙的问题了,你只要清楚你当前的文件在那个目录下,如果在当前路径下,就直接引用好了,不是就加上文件所在的路径,不用那么麻烦的
暗然的白天 2011-01-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 heardy 的回复:]
引用 3 楼 chenhao1208 的回复:
HTML code

<img src="<%=request.getContextPath()%>/image/busy.gif" />


图片也这样写了、相对路径,不会出错的


这个是绝对路径把
[/Quote]
呵、是绝对的...lz出不来图片吗?不会吧...
fjc04091125 2011-01-28
  • 打赏
  • 举报
回复
好像不行啊,本来是显示会动的图片,显示只显示图片的图标
heardy 2011-01-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 chenhao1208 的回复:]
HTML code

<img src="<%=request.getContextPath()%>/image/busy.gif" />


图片也这样写了、相对路径,不会出错的
[/Quote]

这个是绝对路径把
暗然的白天 2011-01-28
  • 打赏
  • 举报
回复

<img src="<%=request.getContextPath()%>/image/busy.gif" />

图片也这样写了、相对路径,不会出错的
暗然的白天 2011-01-28
  • 打赏
  • 举报
回复
上面src里多了一个 ] 把它去掉
暗然的白天 2011-01-28
  • 打赏
  • 举报
回复

<script type="text/javascript" src="]<%=request.getContextPath()%>/script/coverController.js"></script>

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧