解决一次springboot访问不到静态资源的问题

在编写个人博客框架时,启动项目后,html文件中静态资源访问不到,出错信息如下:

org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'java.lang.Integer'; nested exception is java.lang.NumberFormatException: For input string: "css"

一开始是按照网上的css和js引入方式:

 <link rel="stylesheet" th:href="@{/css/me.css}">

引入图片也是这种方式,一直显示类型转换错误。。。。人都傻了(感觉可能是路径写错了),后面去查了博客,自己摸索了一下解决了这个问题,但是没有去深究,求大佬们给个传送门深入了解静态资源配置和拦截问题。

解决办法:

1.编写了拦截器放行资源

2.重新编写引入方式

第一步:查阅了一些博客之后,普遍说的是springboot2.0之后会拦截静态资源,针对拦截,编写拦截器放行静态资源

目录结构:

尽量不要去继承WebMvcConfigurerAdapter,这个已经被WebMvcConfigurer取代,已经弃用了

@EnableWebMvc
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:static/");
        WebMvcConfigurer.super.addResourceHandlers(registry);
    }
}

第二步:引入js和css文件

 <link rel="stylesheet" th:href="@{/static/css/me.css}">
<script th:src="@{/static/js/jquery.min.js}"></script>

一般出错的话,可能是没有加"/",也可能是没有加static(虽然能够引用了,但是不清楚为什么要加static,为什么@{/css/me.css}不可以直接访问,求解答)

这是因为在拦截器中定义了放行/static/**的资源,因此当需要引用静态资源时标注一下。

水平有限,错误请指正!一起学习,一起进步,感谢!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值