美文网首页
springboot 2.X 解决访问静态资源的时候出现404的

springboot 2.X 解决访问静态资源的时候出现404的

作者: 进击的奥莉 | 来源:发表于2020-07-21 14:57 被阅读0次

    springboot版本:2.1.15.RELEASE
    jquery版本:3.5.1
    今天跟着老师学习springboot引入静态资源,老师写的行云流水,但是我第一步就卡着了,静态资源访问不到,网上找资料,看源码,终于把问题解决了。
    因为我不是新建springboot项目,是在我原先的基础上做的,之前为了访问图片,我新增了一个静态资源配置类,导致静态资源自动配置失效,请看我的分析。
    1,在https://www.webjars.org/
    网站找到jquery的maven依赖。我使用的最新版本3.5.1

    <dependency>
        <groupId>org.webjars.bower</groupId>
        <artifactId>jquery</artifactId>
        <version>3.5.1</version>
    </dependency>
    

    maven更新完毕,你可以看到你的jquery包
    在项目目录找到Externel Libraries,并打开,拉到最下面找到如图所示


    webjars1.png

    很多同学会和我一样,访问jquery.js会报错(你首先检查一下是不是文件夹名字写错了),比如


    webjars2.png
    不要急,可能你的和我问题一样,
    查看源码(搜索此类WebMvcAutoConfiguration)得知,自动配置中有一个注解是@ConditionalOnMissingBean({WebMvcConfigurationSupport.class}),这个注解的意思是:在WebMvcConfigurationSupport.class这个类没有的情况下,才会走SpringBoot的Web自动配置,由于我代码中已经继承了WebMvcConfigurationSupport,所以自动配置失效了,我的代码如下:
    webjars3.png

    难道配置了就无解了吗?No,No,No,接下来就是我写这个文章的目的,如果还使以前的有效,只需要加上如下代码即可:
    你需要多少个就添加多少个,我这里只添加两个示例。

    registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
    registry.addResourceHandler("/webjars/**") .addResourceLocations("classpath:/META-INF/resources/webjars/");
    

    代码位置如图:


    webjars4.png

    运行代码,浏览器访问jquery.js,成功


    webjars5.png
    同样,static下的静态文件也可以访问
    webjars6.png

    如果上述方法不能解决你的问题,请看下面
    之前是extends WebMvcConfigurationSupport类,我们修改为 实现WebMvcConfigurer类,既保留了所有的自动配置,也能用我们的扩展配置,真的超级智能,超级完美。推荐使用这个方法。


    webjars7.png
    @Configuration // 表示这是个配置类
    public class MyWebMvcConfig implements WebMvcConfigurer {
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/images/**").addResourceLocations("file:/D:/javaProject/upfile/");
            WebMvcConfigurer.super.addResourceHandlers(registry);
        }
    }
    

    至此,已经完美解决,希望你能一下子搜到我的文章,节约解决问题的时间。

    相关文章

      网友评论

          本文标题:springboot 2.X 解决访问静态资源的时候出现404的

          本文链接:https://www.haomeiwen.com/subject/ivyikktx.html