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>

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

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念