微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SpringMVC 静态资源过滤(无法加载css、js的解决)各类方法

本人作为一名卑微且喜欢划水的软件工程学子,在做SpringMVC框架项目的期末大作业时,发现了与jsp跳转和静态资源过滤的相关问题(静态资源无法加载即静态资源被拦截),并在网上做了搜索

本文意在对静态资源无法调用的的解决方法做不完全整合,所有方法均来自网络,所有代码来自本人作业成功运行实例,侵权必删,欢迎指正和补充。

Solution 1:让jsp文件获取项目url

在jsp文件头部插入相对路径

<%
    //获取项目的URL地址
    String basePath = request.getScheme() + "://"+request.getServerName()+":"+request.getServerPort()+request.getcontextpath()+"/";
%>

在jsp中html部分引用处url加入 <%=basePath %>,如

<head>
    <link href="<%=basePath %>assets/css/bootstrap.css" rel="stylesheet" /> 
</head>
<body>
<script src="<%=basePath %>assets/plugins/vegas/jquery.vegas.min.js"></script>
<script src="<%=basePath %>assets/plugins/jquery.easing.min.js"></script>
</body>

url引用还可使用${pageContext.request.contextpath}(记得加“/”)

<head>
   <link href="${pageContext.request.contextpath}/assets/css/style.css" rel="stylesheet" />
</head>
<body>
<script src="${pageContext.request.contextpath}/assets/js/custom.js"></script>
</body>

此外对jsp的修改还有插入项目名称方法,详见文章内的第二种https://blog.csdn.net/qq_40366444/article/details/88706739

Solution 2:对spring-mvc.xml进行修改

 加载驱动

<!--加载springmvc特有的注解驱动-->
    <mvc:annotation-driven></mvc:annotation-driven>

静态资源放行(全部放行)

<!--SpringMvc放行静态资源  css .jpg js..-->
    <mvc:default-servlet-handler/>

 静态资源解析处理(指定放行)

 <mvc:resources location="/assets/js/" mapping="/js/**" />
    <mvc:resources location="/assets/img/" mapping="/assets/img/**" />
    <mvc:resources location="/assets/css/" mapping="/css/**" />
    <mvc:resources location="/assets/plugins/" mapping="/plugins/**" />

 

Solution 3:对web.xml进行修改

加入以下代码

<!-- static resources -->
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.css</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.gif</url-pattern>

  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.jpg</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.js</url-pattern>
  </servlet-mapping>

Solution 4:对web.xml进行修改

<build>
<resources>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
      </resource>
    </resources>
  </build>

以上就是本人经过本次作业总结的四种方法,希望能帮到有需要的人叭~

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。