IntelliJ IDEA+SpringBoot中静态资源访问路径陷阱:静态资源访问404

今天在使用SpringBoot时遇到静态资源没法访问的问题,百思不得其解,最终解决,记录下来。css

html页面中访问static文件夹下的index.css文件失败,浏览器调试模式下发现404。
项目目录结构以下:html

这里写图片描述


HTML代码截图浏览器

这里写图片描述

路径正常,能够经过ctrl+鼠标左键直接访问。markdown


可是当运行应用后,浏览器访问时却发现没法获取文件,,F12打开开发者调试工具查看结果以下:
这里写图片描述工具

百思不得其解。因而各类百度,最终在一篇讲解SpringBoot静态资源访问的博客中收到了启发,解决了问题。测试

那篇博客中写道:atom

在SpringBoot中,默认配置的/**映射到/static。
静态资源映射还有一个配置选项,为了简单这里用.properties方式书写:

这个配置会影响默认的/**,例如修改成/static/**后,只能映射如/static/js/sample.js这样的请求(修改前是/js/sample.js)。这个配置只能写一个值,不像大多数能够配置多个用逗号隔开的。3d

这句“(修改前是/js/sample.js)”给了我启发,因而我也将个人路径去掉前面的“/static”,测试,成功!
修改后HTML页面代码截图:
这里写图片描述调试

注意!这时IDEA高亮显示,表示IDEA找不到该路径!htm


运行结果截图:
这里写图片描述

此时获取index.css文件成功!而且路径是”/css/index.css”!

即,解决方案是:去掉路径前的“/static”!

此次出错的缘由主要在于本身对SpringBoot的静态资源映射不够了解。不过,之因此记录下这个问题,并分享给你们,有两点缘由:

    1. 是由于在这个错误中IntelliJ IDEA起了助纣为虐的做用,错误的路径它显示为正确,而正确的路径它却高亮显示找不到,这个坑可能会误导不少人。
    2. 是由于SpringMVC中正确的路径是要加上“/static”的,以前用SpringMVC写项目时一直这么用的,存在定势思惟。  
相关文章
相关标签/搜索