tomcat springmvc 图片404不显示

@EnableWebMvc //<mvc:annotation-driven/>
public class AppConfig implements WebMvcConfigurer {

    //视图解析器
    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        registry.jsp("/WEB-INF/",".jsp");
    }

   

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/*")
                .addResourceLocations("/WEB-INF/static/");
    }

    //<mvc:default-servlet-handler></mvc:default-servlet-handler>
    //处理不了的请求交给tomcat处理 通常静态资源
    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }
}

上图是springMVC的配置,图片404怎么都不好使。

jsp如下

<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
    <title>Person</title>
</head>
<body>
<h1>person</h1>
${5+1}
<img src="${pageContext.request.contextPath}/static/zl.jpg">
</body>
</html>

之前springmvc404 我一直没怎么寻思,看到别人说怎么好使我就怎么copy。弄的乱七八糟。

结论是我个人感觉,可能有误。忘大神指教。

在tomcat中发布图片所在的文件夹。

1).addResourceHandlers 等同于 <mvc:resources mapping="/static/*" location="/WEB-INF/static/"/>

访问/static/*路径时,对应的映射资源在哪 springmvc起作用


2).configureDefaultServletHandling 等同于 <mvc:default-servlet-handler></mvc:default-servlet-handler>
将springmvc处理不了的请求。交给tomcat处理 tomcat起作用

最开始的时候我两个都配置了但还是404,原因应该是

我在web.xml写了如下代码

  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.jpg</url-pattern>
  </servlet-mapping>

这是tomcat配置一个servlet专门处理.jpg结尾的请求,与springmvc无关。当请求图片时,springmvc交给tomcat处理,可能是我tomcat少配置了东西,导致404.

 

如下设置

 

发布static文件夹,图片放在里面,重启后

 

直接访问好使,jsp中还是不行。

 

tomcat下的static去掉, 2)注释掉,web.xml里的servlet也注释了。

 

jsp好使,直接访问不行。

我想让直接访问跟jsp都好使。

tomcat下的static保留,1,2保留,web.xml中的servlet注释。

可行,俩种方式都ok。

总之就是提供一个排查404的方向吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值