• SpringBoot中jsp里面的静态资源js、css、images访问不到解决办法


     
    1、如果Springboot的项目用到了jsp页面,里面有些静态资源需要引用。
     
    2、springboot 默认的静态资源的值有四个,Default默认分别如下所示:
      1)、classpath:/META-INF/resources/,
      2)、classpath:/resources/,
      3)、classpath:/static/,
      4)、classpath:/public/

    3、如果你没有特别配置静态资源的位置,那么默认的静态资源的位置就是resource 下面的static 文件夹,毕竟不用自己新建文件夹,那么你的页面引入的静态文件可以这么写:

     <script type="text/javascript" src="/js/jquery-3.4.1.min.js"></script>

    4、当然就需要在static下面创建js文件夹,将jqeruy.js放在这个js文件夹下面。

    5、或者你习惯于在webapp下面写静态文件,那么需要注意两个点:

      1)、第一点:需要在webapp下面创建一个static文件夹(和WEB-INF同级) 然后创建js文件夹,然后把静态文件放进去

      2)、第二点:引入静态文件的写法:

    <script type="text/javascript" src="/static/js/jquery-3.4.1.min.js"></script>

    注意上面都是没有指定静态文件的地址的,指定静态文件的地址的属性是 : spring.resources.static-locations

    可以在application.properties中指定静态资源的地址,如下所示:

    1 spring.resources.static-locations=classpath:*/js/,classpath:*/css/

    如果不指定的,默认值有四个:Default:

    classpath:/META-INF/resources/,

    classpath:/resources/,

    classpath:/static/,

    classpath:/public/

    6、使用案例,如下所示:

    需要注意的是如果spring.resources.static-locations、spring.mvc.static-path-pattern配置如下的值:

    1 spring.mvc.view.prefix=/WEB-INF/jsp/
    2 spring.mvc.view.suffix=.jsp
    3 spring.resources.static-locations=classpath:/static/
    4 spring.mvc.static-path-pattern=/static/**

    备注:

      spring.mvc.static-path-pattern: spring.mvc.static-path-pattern,这个配置就是在访问静态资源的路径前面追加static关键字。比如没有设置这个配置项之前,访问静态资源http://127.0.0.1/js/jquery.bootstrap.js,加了之后就要这样访问了 http://127.0.0.1/static/js/jquery.bootstrap.js

      spring.resources.static-locations: classpath:/static,classpath:/templates,这个是用以指定存放静态资源的路径,查找静态资源时会上面的路径下面开始搜索,没有找到会返回404。

    或者实现了addResourceHandlers该方法里面的所示内容,那么静态资源引用的时候,前面要加上/static/的,不然无法进行引用。

     1 package com.fline.datagovern.config;
     2 
     3 import org.springframework.context.annotation.Configuration;
     4 import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
     5 import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
     6 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
     7 
     8 /**
     9  * 
    10  * @author biehl
    11  *
    12  */
    13 @Configuration
    14 public class SpringMvcWebConfigSupport implements WebMvcConfigurer {
    15 
    16     /**
    17      * 将static下面的js,css等等文件加载出来
    18      *
    19      * @param registry
    20      */
    21 //    @Override
    22 //    public void addResourceHandlers(ResourceHandlerRegistry registry) {
    23 //        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
    24 //    }
    25 
    26     /**
    27      * 默认访问的是登录界面
    28      * 
    29      * springboot 默认的静态资源的值有四个:Default:
    30      * 
    31      * classpath:/META-INF/resources/,
    32      * 
    33      * classpath:/resources/,
    34      * 
    35      * classpath:/static/,默认的静态资源的位置就是resource下面的static文件夹
    36      * 
    37      * classpath:/public/
    38      */
    39     @Override
    40     public void addViewControllers(ViewControllerRegistry registry) {
    41         // 浏览器发送/请求来到login.jsp页面,不用写controller控制层的请求方法了
    42         // http://127.0.0.1:8000/xxx/
    43         registry.addViewController("/").setViewName("login");
    44     }
    45 
    46 }

    引用效果,如下所示:

  • 相关阅读:
    2016第34周三
    2016第34周二
    Spring中资源的加载ResourceLoader
    Spring的资源抽象Resource2实体类
    Spring资源抽象Resource
    SQL Server死锁产生原因及解决办法 .
    sql server中同时执行select和update语句死锁问题
    数据库死锁实例分析及解决方法
    一次查找sqlserver死锁的经历
    js和Jquery获取选中select值和文本
  • 原文地址:https://www.cnblogs.com/biehongli/p/13755743.html
Copyright © 2020-2023  润新知