• springboot2拦截器和静态资源的访问


    自己写了个测试的拦截器,运行后就不能直接访问index.html了,后来通过控制器来转换可以了,自己又闷着头学习。

    每次访问网页的时候就在后台打了几个字"自定义拦截器...",什么功能没有,但释放了我一直对拦截器讳莫如深的感觉。

    做的网页Jequery和bootstrap样式都是直接访问网上的,昨天把这些资源文件下到本地,运行后样式全都没了,Jequery也失效了。狐疑。

    体现了自己的学艺不精,折腾到半夜3点都没有找到突破口,然实在太困,忧心忡忡的洗漱睡觉。

    一早到学习群里问候,有同学很热情,但是没有解决问题。小D问,是报的404还是什么,我回复,网页找到了,就是样式全没了。

    (小窍门:引入的资源文件,如果点的进去打开了文件,那么说明路径是正确的)

    后来解决问题的切入点就是404.

    打开网页F12调试,在网络页,可不!资源Jequery和bootstrap都没有访问到,报的404. 好,有了异常信息才好解决问题,不然就是个无头苍蝇,费尽了所有力气还不知道正确的方向。

    怎么会访问不到资源呢?百思得了其姐,恍然大悟,灵机闪现,谢谢神明!问题出在拦截器上!

    访问资源的路径被拦截器半道劫下了。

    好,查找拦截器不拦截的方法。

    首先到拦截器查看:

    ------------------------------------------------------------------------------

    @Override
    protected void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(new UserInterceptor())
    .addPathPatterns("/**")
    .excludePathPatterns("/favicon.ico");

    --------------------------------------------------------------------------------

    look! /** ,只要是“/”全部拦截,在链式函数excludePathPatterns("/favicon.ico");里增加了“/static/**”,但是没用;

    继续查,发现了函数:

    ----------------------------------------------------------------------------------------------------

    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
    super.addResourceHandlers(registry);

    }

    ------------------------------------------------------------------------------------------------------
    满心欢喜,兴高采烈再次运行。

    Wonderful!一切又回复了美好!喜笑颜开,虽然折腾我了一天,但还是拿下了。:)

  • 相关阅读:
    JQuery0007:JQuery跨域无刷新分页
    H5_0034:toast提示
    H5_0032:chrome以窗口模式运行(无地址栏与标签栏)
    H5_0031:浏览器弹窗
    JN_0022:VSCode操作技巧 去除空行 去掉换行付
    JQuery0003:事件触发与解除
    CSS0001: CSS判断手机 平板 PC
    Web_0006:阿里云服务器OSS缓存设置清理
    H5_0030:iframe 全屏嵌入,父级获取iframe中嵌入的dom对象
    JN_0020:Chrome保存整个网页为图片
  • 原文地址:https://www.cnblogs.com/zhangxj/p/9778463.html
Copyright © 2020-2023  润新知