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目录下:
文件目录如下:
<!-- 对静态资源的访问 -->
<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试试…
上一篇: DNS域名解析服务器
下一篇: 18 二叉树的镜像
推荐阅读
-
vue填坑之webpack run build 静态资源找不到的解决方法
-
vue填坑之webpack run build 静态资源找不到的解决方法
-
SpringBoot项目中如何访问静态资源
-
Tomcat部署SpringMvc项目出现无法访问静态资源的问题
-
SSM项目静态资源访问不到解决方法
-
Springboot 2.0.5版本访问不到静态资源
-
SpringBoot 访问不到static文件夹下的静态资源
-
vue项目打包为APP,静态资源正常显示,但API请求不到数据的操作
-
springboot static静态资源访问不到及NoHandlerFoundException没有出发的感悟
-
使用SSM框架运行项目静态资源(img、js、css等)无法引用的问题