This application has no explicit mapping for /error, so you are seeing this as a fallback.

本文介绍了SpringBoot在访问静态资源时遇到的问题及解决方法。问题主要涉及视图解析器,包括控制器路径与返回字符串相同以及静态资源位置被修改导致的错误。解决策略包括在配置文件中设置后缀、自定义视图解析器或者保持默认静态资源位置不变。提供了一种具体的配置类示例来实现自定义视图解析器。
摘要由CSDN通过智能技术生成

spring boot访问静态资源时报这个错,目前发现两个原因

主要是视图解析器问题

 1、查看控制器路径是否和返回字符串一样,这两个地方是不能一样的

    @RequestMapping("/tohello")//控制器路径
    public String hello(){
        return "hello";//静态资源路径
    }

 2、是不是在.properties或.yml配置文件里修改了静态资源默认位置,且没有自定义视图解析器?或者相反

spring.web.resources.static-locations=classpath:/myPages/
    或者
spring:
  web:
    resources:
      static-locations: /myPages/

根本原因:

spring boot修改默认静态资源路径后,自动拼接返回字符串后缀会失效,这样返回的就不是/hello.html,而是/hello

解决办法:

1、(推荐).properties或.yml配置文件里设置后缀;

spring.mvc.view.suffix=.html

2、创建一个配置类,自定义视图解析器,自己设置视图解析器前缀和后缀;

3、或者就别修改默认的静态资源位置了吧

@Configuration
public class MyConfiguration implements WebMvcConfigurer {
    @Bean
    public ViewResolver myViewResolver(){
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/");//前缀
        resolver.setSuffix(".html");//后缀
        return resolver;
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值