问题
在java web项目中,添加静态文件到webapp下,然后重启项目,页面上样式未生效,在浏览器的Sources 下无新加的静态文件,在浏览器的Network 下发现请求静态文件404 。
解决
删除target ,重新运行项目。
原因
开发工具IDEA进行编译时没有将静态文件编译进去,这种情况概率不高,但是会存在。
知识点
webapp 与WEB-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处理
|