Bootstrap

访问webapp下静态文件出现404问题

问题

java web项目中,添加静态文件到webapp下,然后重启项目,页面上样式未生效,在浏览器的Sources下无新加的静态文件,在浏览器的Network下发现请求静态文件404

解决

删除target,重新运行项目。

原因

开发工具IDEA进行编译时没有将静态文件编译进去,这种情况概率不高,但是会存在。

知识点

webappWEB-INF的区别
webapp相对来说安全性较低些,可以直接访问。
接下来说明WEB-INF
WEB-INF相对来说安全性高些,首先看web.xml的前端控制器的拦截路径,再看springmvc.xml的放行路径。
前端控制器拦截的三种方式(web.xml包下的DispatcherServlet):

路径解释
*.do只拦截.do文件
/除jsp外,其它均拦截
/*拦截所有请求包括jsp页面

放行一般是由spring mvc来做,即配置文件spring mvc.xml

<mvc:resources mapping="/js/**" location="/js/" cache-period="31556926"/>

location:指location指定的目录不要拦截,直接请求,这里指在根目录下的resources文件下的所有文件
mapping:值在resources文件下的所有文件(**代表所有文件)
所有意思就是在根目录下resources的所有文件不会被DispatcherServlet拦截,直接访问,当做静态资源交个Servlet处理

;