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

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

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

复制代码 代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<script type="text/javascript" src="js/jquery132min.js"></script>
<script type="text/javascript">
$(function(){
alert('hello1');
});
</script>

在调用它的时候,有:
<%@ include file="../../common_ext.jsp"%>
但这样很可能导致错误。

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

复制代码 代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String tPath = request.getContextPath();
String tBasePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+tPath+"/";
%>
<script type="text/javascript" src="<%=tBasePath%>js/jquery132min.js"></script>
<script type="text/javascript">
$(function(){
alert('hello1');
});
</script>

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

时间: 2024-10-29 00:11:06

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

ajax动态为a标签href赋值不执行跳转的原因分析及解决_AJAX相关

由于一中考评系统要加入一个新的功能"调查问卷",我想沿用别人做好的调查问卷,用别人的有一个好处就是:人家做的专业,界面美化等非常人性化,但是它需要你每次设置完调查问卷后发布一下网址,客户端访问的每次都是变动的地址. 客户端每次点击"调查问卷",就会跳转到相应页面:  点击"调查问卷"即进入调查问卷页面:  我使用a 标签,每次访问管理员提交的"调查问卷" 复制代码 代码如下: <li><a href=&quo

ajax动态为a标签href赋值不执行跳转的原因分析及解决

由于一中考评系统要加入一个新的功能"调查问卷",我想沿用别人做好的调查问卷,用别人的有一个好处就是:人家做的专业,界面美化等非常人性化,但是它需要你每次设置完调查问卷后发布一下网址,客户端访问的每次都是变动的地址. 客户端每次点击"调查问卷",就会跳转到相应页面:   点击"调查问卷"即进入调查问卷页面:   我使用a 标签,每次访问管理员提交的"调查问卷" 复制代码 代码如下: <li><a href=&q

代码-使用JSP include file后页面中单独使用的META标签,JS外部文件都跑到了body中。

问题描述 使用JSP include file后页面中单独使用的META标签,JS外部文件都跑到了body中. 代码中头部引入公共头部: 公共头部代码:

php多次include后导致全局变量global失效的解决方法_php技巧

本文实例讲述了php多次include后导致全局变量global失效的解决方法.分享给大家供大家参考.具体分析如下: 在多个文件中,文件一个接一个include,但最后一个文件里的函数使用global后却无法引用全局变量.例如: a.php文件: <?php $aa = 1; ?> b.php文件: <?php include a.php function show(){ global $aa; var_dump($aa); } ?> 显示:null; 这种失效是由于多种原因造成的

Oracle中缺少log_archive_config会导致归档路径被禁用

10g的DATA GUARD的一个主要特点就是引入了log_archive_config参数,如果缺少这个参数,可能会导致归档路径被禁用. 看别人建立DATA GUARD时碰到了这个问题,当时觉得比较有意思,于是特意重现一下. 当前是一个已经配置好的DATA GUARD,为了模拟错误,先将这个参数设置为空: SQL> alter system set log_archive_config = ''; System altered. SQL> alter system switch logfil

HTML5 audio标签使用js进行播放控制实例

HTML5 audio标签使用js进行播放控制实例  <audio>标签可以在HTML5浏览器中播放音频文件. <audio>默认提供一个控制面板,但是有些时候我们只需要播放声音,控制面板由我们自己来定义其显示的状态. 这里我们可以使用JS来进行控制,代码如下:   代码如下: var audio ; window.onload = function(){ initAudio(); } var initAudio = function(){ //audio = document.c

在js文件中如何获取basePath处理js路径问题

js路径的问题有时候不好处理,在jsp中,我们可以用el表达式直接获取basePath,但是在单独js文件中不能用el表达式,又不想在jsp中单独的写个变量,可以用以下方法: 复制代码 代码如下: var location = (window.location+'').split('/'); var basePath = location[0]+'//'+location[2]+'/'+location[3]; var url = basePath + '/js/xxx.js';

php多次include后导致全局变量global失效的解决方法

这篇文章主要介绍了php多次include后导致全局变量global失效的解决方法,实例分析了$GLOBALS失效的原理与解决方法,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了php多次include后导致全局变量global失效的解决方法.分享给大家供大家参考.具体分析如下: 在多个文件中,文件一个接一个include,但最后一个文件里的函数使用global后却无法引用全局变量.例如: a.php文件: ? 1 2 3 <?php $aa = 1; ?> b.php文件

invalid-日志记录中请求url小写导致的路径无法匹配而造成的错误。

问题描述 日志记录中请求url小写导致的路径无法匹配而造成的错误. 日志中记录中有部分请求url字母全为小写,导致org.apache.struts.action.RequestProcessor - Invalid path /(映射名) was requested及java.lang.NoSuchMethodException等错误 解决方案 你确定只是因为大/小写的原因?还是说由于操作系统的原因,路径名区分大/小写而导致问题的出现?记得以前 Windows 终端与 Linux 服务器通讯,