springMVC中Failed to load resource: the server responded with a status of 404 (Not Found)

关于在当前引用路径下找不到js的问题

首先必须保证自己的引用路径的正确性

<script src="${pageContext.request.contextPath}/js/jquery-3.3.1.js"></script>

还有一个就是需要在web.xml中添加

<mvc:resources mapping="/js/**" location="/js/"/>

以此来开放springMVC对静态资源的访问。

自己一定要用心,配置文件不要随便乱删,错了很容易摸不着头脑,本来一个很简单的配置问题,弄了这么久,以此告诫自己不要粗心大意

报404的原因

是因为配置了前端控制器。

<!--配置SpringMVC的前端控制器-->
    <servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

它每一次资源访问都是找@Controller下的@requeMapping之中的路径,导致jsp中js路径也被默认为是requestMapping中的路径进行匹配,所以就匹配不上,导致404错误。
所以需要在web.xml中添加<mvc:resources mapping="/js/**" location="/js/"/>来对静态资源区别访问。
更方便的方法
依照上述情况,如果springmvc找不到静态资源,我们可以利用原始容器,也就是tomcat帮我们找到它并返回给我们。配置如下:
在web.xml中添加:

<mvc:default-servlet-handler/>

自己一定要用心,配置文件不要随便乱删,错了很容易摸不着头脑,本来一个很简单的配置问题,弄了这么久,切不可粗心大意了

猜你喜欢

转载自blog.csdn.net/qq_42956993/article/details/108816362