如此博文所述,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了