背景:IDEA+Maven的springMVC项目
这是web.xml配置文件中的前端控制器,拦截所有文件。所以在springmvc要配置不拦截静态的js资源。
springmvc配置文件中配置不拦截请求路径有js文件。
<!-- 配置不拦截js资源 -->
<mvc:resources mapping="/js/**" location="/js/"/>
问题:在jsp中由于要使用jquery.js文件,所以理所当然的引入本地的jquery.js文件,但是在重新部署项目后,发现点击按钮后根根本不弹窗,所以在谷歌浏览器调出开发者工具,发现报404错误,找不到jquery-1.8.3.js文件,这就很纳闷。首先肯定是看是不是路径错误,一顿检查后排除了文件路径错误,发现还是报404错误。
下面是staticResources.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<script src="js/jquery-1.8.3.js"/>
<title>Title</title>
<script>
$(function(){
$("#btn").click(function(){
alert("123");
});
});
</script>
</head>
<body>
<button id="btn">按钮</button>
</body>
</html>
首先解决找不到文件的404错误,在网上找了一通,各种方法也不行,后来看到一个方法是:在tomcat安装目录下的webapp文件夹下F:\apache-tomcat-8.5.42\webapps的项目中看js文件夹中是否有jquery文件,一看果然没有。由于jquery文件是启动服务器之后添加的,不知道为什么idea没有将文件打包到项目中,先将项目clean(或者直接删除webapp目录下编译的项目文件),然后重新启动tomcat服务器,然后再看有了之前的文件。打开浏览器也没有之前的404错误。但是点击事件还是不会发生。
之后又是找了一通各种方法都试了试,无意中看到一个关于<script>标签的问题,原文:script没有用结尾产生的问题,发现在引入jquery文件时,使用了<script src="js/jquery-1.8.3.js"/>直接在标签内闭合了,但是文章中提到不是所有的浏览器都支持 <script *** /> 的写法,所以抱着试试看的态度,一试果然成功了,一顿瞎忙和了半天原来是一个标签惹得祸。然后果断看看之前是怎么引入jquery文件的,一看果然是没在标签内闭合,所以不知道自己抽什么风这次一定要这么写,还瞎忙了一天。
最后,方法仅供参考,方法不一定是通用,通过这次发现大家的问题真的是千奇百怪,有的是路径错误,有的是把script代码写在head标签里,但是却没有使用$(function(){ //代码} ),有的拦截所有的文件却没有配置<mvc:resources>等,最后希望看到这篇有帮助,少走一些弯路。
本文完