彻底解决SSM中静态资源无法加载的问题
场景一:和WEB-INF目录不可访问有关
WEB-INF/web.xml中前端控制器拦截路径为*.do、*.action这样的后缀名匹配时,静态资源并不会被拦截。
如果此时请求不到静态资源,可能是静态资源位于不可直接访问的目录下(比如:WEB-INF下)。这时应该将静态资源放在可以直接访问到的目录下(例如:webapp下)。
场景二:和前端控制器有关
如果WEB-INF/web.xml中前端控制器拦截路径为 / 这样的路径时,这时所有的请求都会被拦截(除了jsp和html页面),包括静态资源也会被拦截。此时静态资源放在WEB-INF下或者WEB-INF外面都没有什么影响。
如果此时请求不到静态资源,解决办法是在spring的配置文件中使用
<mvc:resources mapping="/css/" location=“css/” />
<mvc:resources mapping="/js/" location="/js/" />
<mvc:resources mapping="/images/**" location="/images/" />
其中mapping的路径是指客户端在请求静态资源时除了项目根路径后面的路径。
location的路径是指在项目目录中从webapp下开始的路径。/**代表匹配多级目录下的所有文件
网友评论