欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-10 10:41:58
...

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目录
文件目录如下:
SSM项目静态资源访问不到解决方法

	<!-- 对静态资源的访问 -->
    <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目录
文件目录如下:
SSM项目静态资源访问不到解决方法

	<!-- 对静态资源的访问 -->
    <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试试…