spring-boot配置静态资源映射的坑:properties文件不能添加注释

如此博文所述,Spring Boot 对静态资源映射提供了默认配置

默认将 /** 所有访问映射到以下目录:
classpath:/static
classpath:/public
classpath:/resources
classpath:/META-INF/resources

 

但是可以通过application.properties文件配置静态资源的访问URL样式和静态资源的存放位置,分别为如下两个属性,我从spring-boot的官方文档复制过来,包括井号后对此属性的注释

spring.mvc.static-path-pattern=/**  # Path pattern used for static resources.

spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/  # Locations of static resources.

 

即第一个属性配置访问静态资源URL样式,第二个配置存放静态资源的位置

我想改访问静态资源的URL为 /static/**,于是我在application.properties文件添加以下代码

spring.mvc.static-path-pattern = /static/** # Path pattern used for static resources

我一般是把这些配置从spring官方文档中粘贴进来,然后改一下后面的值即可,留着注释想方便自己以后修改的时候快速了解该属性

按理说,井号之后都是注释,且井号之前已经有一个空格了,应该没什么问题的

可是当我访问 http://localhost:8080/static/test_pdf.pdf 的时候,且包404错误,提示找不到映射此链接的处理器

这让我折腾了好久,最后我尝试把后面的注释去掉的时候,变成如下配置时,突然发现可以正常访问了

spring.mvc.static-path-pattern = /static/**

 

这样看来,应该时spring把#号以及后面的注释都当做URL样式了

因此,大家配置这两个属性的时候,记得要后面不能添加注释,否则想我一样浪费时间怀疑好久

当时我配置其他属性的时候,后面的注释是可以保留,我也不知道解析这两个属性时是不是存在一点bug了

posted @ 2018-03-30 23:56  woncode  阅读(878)  评论(0编辑  收藏  举报