javascript

位置:IT落伍者 >> javascript >> 浏览文章

关于include标签导致js路径找不到的问题分析及解决


发布日期:2019年01月20日
 
关于include标签导致js路径找不到的问题分析及解决

关于使用jsp:include标签及<%@ include标签时要注意的事项
先回忆一下二者的区别(对于此篇文章而言二者在用法上没有区别)
jsp:include是先编译一下includedjsp文件然后再包含(先编译后包含)
@ include是先把文件包含就来然后统一编译(先包含后编译)
今天下午想把Jquery集成到项目中发现怎么样都会出问题原因就是路径问题
在集成时我的思路是写一个公共JSP文件里面包含一些常用的js文件当然此处我用的就是Jquery插件了
但写完发现单独测试公共JSP是可以使用的但包含公共JSP页面的页面却始终不能使用JQuery开始还以为是加载顺序的问题

几经测试终于发现了其中的问题
由于做的项目文件较多故文件都不放在一个文件夹下在公共JSP页面中

复制代码 代码如下:
<%@ page language="java" import="javautil*" pageEncoding="utf"%>
<script type="text/javascript" src="js/jqueryminjs"></script>
<script type="text/javascript">
$(function(){
alert(hello);
});
</script>


在调用它的时候
<%@ include file="//common_extjsp"%>
但这样很可能导致错误

原 因是include之后公共JSP被加载到自己的JSP则JQueryr的相对位置已经发生了变化即公共JSP把JQuery的相对位置传给了自 己的JSP但自己的JSP以自身为标准通过路径就找不到Jquery插件了简单地说就是如果用相对路径则公共JSP中的路径就应该是相对自己 jSP的路径了
但这样显然失去了它是公共JSP的意义因此在这里用绝对路径来做

复制代码 代码如下:
<%@ page language="java" import="javautil*" pageEncoding="utf"%>
<%
String tPath = requestgetContextPath();
String tBasePath = requestgetScheme()+"://"+requestgetServerName()+":"+requestgetServerPort()+tPath+"/";
%>
<script type="text/javascript" src="<%=tBasePath%>js/jqueryminjs"></script>
<script type="text/javascript">
$(function(){
alert(hello);
});
</script>


这样只要在自己的jSP页面中引入公共JSP就可以了

上一篇:JavaScript中的for和iin循环的使用

下一篇:Javascript模板技术