当前位置: 代码迷 >> JavaScript >> 路径有关问题: servlet转向.单纯页面浏览.js文件处理
  详细解决方案

路径有关问题: servlet转向.单纯页面浏览.js文件处理

热度:100   发布时间:2012-11-23 22:54:33.0
路径问题: servlet转向.单纯页面浏览.js文件处理

晚上在使用代码高亮时,需用到shCoreCommon.js,里面要设置一个复制用的img和flash的路径,类似javaeye中的代码复制。

  1. 在单纯使用jsp页面时(非跳转,而是直接在地址栏输入URL使用),里面的路径设置按照平常来就可以了。可以用../或者request.getContextPath()。
  2. 但是使用了servlet转向后,麻烦就大了,img和flash往往找不到路径(即使是还是1中的页面)。

其实在之前也遇到过路径问题,但是没有这次特殊。为了解决这个问题,查了以前elf8848写的帖子,这篇文章写得不错,但是如果按照这个来,那么需要考虑的事情太多了,毕竟我的web根目录下可能会有多个级别的目录。(elf848关于路径的帖子http://www.iteye.com/topic/352202)。

?

问题描述和最终解决方案如下:

1.  将shCoreCommon.js包含到其他页面使用时,要修改dp.sh.Toolbar.Create = function(_)中的<img style=\"border:none;\" src=\"../syntaxhighlighter/copy.jpg\"alt=\"复制内容\"/>,将src指向图片,这里图片的路径是对于 “包含的文件<使用shCoreCommon.js的文件>” 来说的。

2.  当使用了servlet进行转向时,可能是当前地址栏中的URL导致的问题:
   原先在单纯的jsp里包含shCoreCommon.js,再按照1讲的使用没问题;
   但用了sevlet后,地址栏不是真正的jsp文件所处的目录,所以还是找不到 Img和flash;
	
3.  针对问题2的解决方案,只能将request.getContextPath();传入到脚本中。但是直接在脚本中写<%=request.getContextPath()%>/editor/javascripts/....,这样contextpath不会被解析到。所以最终的解决方案是将shCoreCommon.js放入到一个jsp文件中,然后得到contextPath后传进去用。这样就不用在根据URL来费劲去想要怎么才能跳到shoCoreCommon.js所在的目录了。这是最为傻瓜和简单的用法了,摆脱了需要不断考虑路径的问题。
   
4. 总结,在本文件夹中,shCoreCommon.js是没在jsp中使用的,尤其是通过servlet跳转到的jsp页中。jsp中使用了shCoreCommon.jsp

?

  相关解决方案