晚上在使用代码高亮时,需用到shCoreCommon.js,里面要设置一个复制用的img和flash的路径,类似javaeye中的代码复制。
- 在单纯使用jsp页面时(非跳转,而是直接在地址栏输入URL使用),里面的路径设置按照平常来就可以了。可以用../或者request.getContextPath()。
- 但是使用了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
?