在进行WEB开发时遇到WEB-INF下的静态资源不能访问的问题,反复调试,终于想通。
由于WEB-INF目录下资源文件安全性都是很高的。它是不能直接通过浏览器来访问。
只能通过服务器来访问------所以WEB-INF目录下一般存放的是lib文件夹(项目需要用到的jar包),服务器的配置文件web.xml,以及一些访问安全性较高的jsp/html页面(通常是后台管理页面)。
如果要访问WEB-INF下的jsp/html页面,只能通过请求转发(经过控制层)来访问。
所以即使做了静态资源放行的配置,通过浏览器访问还是会报404。
web.xml
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
或者springmvc.xml:
<!--方法1-->
<mvc:default-servlet-handler />
<!--方法2-->
<mvc:resources mapping="/WEB-INF/**" location="/WEB-INF/"/>
因此对于静态资源的处理,正确的做法是:我们应该把静态资源放在webapp下(或者在webapp下的新建目录)。因为这些静态资源会原封不动的展现给用户,所以不存在安全不安全的说法~