SSM项目静态资源访问不到解决方法

SSM项目静态资源访问报404访问不到解决办法

原因:

如果在web.xml中有对spring的DispatcherServlet请求url映射有如下配置

  <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springmvc-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

< servlet-mapping >中的< url-pattern >/</ url-pattern >所有的请求都会被spring mvc的DispatcherServlet截获拦截,这时静态资源无法的访问

解决:

1 .设置静态资源不过滤

适合 spring3.0.5以上版本
在spring-mvc的配置文件设置

	<!-- 设置静态资源不过滤 -->
	<mvc:default-servlet-handler />

通常Web应用服务器默认的Servlet名称为"default",因此DefaultServletHttpRequestHandler可以找到它;若所有Web应用服务器的默认Servlet名称不为"default",则需通过default-servlet-name属性指定,格式如下:
< mvc:default-servlet-handler default-servlet-name=“Web服务器使用的Servlet名称” />

2 .设置对静态资源的访问

在spring-mvc的配置文件设置

2-1

静态资源处于WEB-INF目录
文件目录如下:
在这里插入图片描述

	<!-- 对静态资源的访问 -->
    <mvc:resources mapping="/css/**" location="/WEB-INF/css/"/>
    <mvc:resources mapping="/simditor/**" location="/WEB-INF/simditor/"/>
    <mvc:resources mapping="/fonts/**" location="/WEB-INF/fonts/"/>
    <mvc:resources mapping="/html/**" location="/WEB-INF/html/"/>
    <mvc:resources mapping="/js/**" location="/WEB-INF/js/"/>
    <mvc:resources mapping="/images/**" location="/WEB-INF/images/"/>
    <mvc:resources mapping="/assets/**" location="/WEB-INF/assets/"/>
    <mvc:resources mapping="/froala_editor/**" location="/WEB-INF/froala_editor/"/>
2-2

静态资源处于webapp目录
文件目录如下:
在这里插入图片描述

	<!-- 对静态资源的访问 -->
    <mvc:resources mapping="/css/**" location="/css/"/>
    <mvc:resources mapping="/images/**" location="/images/"/>
    <mvc:resources mapping="/js/**" location="/js/"/>
    <mvc:resources mapping="/lib/**" location="/lib/"/>
    <mvc:resources mapping="/data/**" location="/data/"/>
    <mvc:resources mapping="/pages/**" location="/pages/"/>

location的位置是从webapp文件夹下开始,故css的位置为webapp/css

3 .一一配置静态资源

在web.xml里添加如下的配置

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

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

该方法有缺点,有多少种静态资源都需要一一配置

如果导入静态资源后路径正确,但是还是访问不了 重启IDEA试试…
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值