Spring Boot静态资源重复映射

时间:2016-10-10 15:49:22

标签: java spring spring-mvc spring-boot

我有一个Spring Boot应用程序,可以在正常情况下完美地映射静态内容。但是,当我添加一些映射,例如/{username}/{info},它将两个字符串参数添加到控制器时,由于/{username}/{info}映射响应静态内容请求,它在加载静态内容时失败。

例如,我将静态文件映射为/css/bootstrap.css等。但是/css/bootstrap.css请求被发送到/{username}/{info}映射,并且它们不会被加载。

这个问题有解决办法吗?我如何授权/css/*映射?我如何将/css/sth.css映射与/{username}/{info}映射分开?

2 个答案:

答案 0 :(得分:0)

您需要为CSS文件添加ResourceHandlerRegistry条目,并将它们存储在/ resources中:

https://spring.io/blog/2013/12/19/serving-static-web-content-with-spring-boot

答案 1 :(得分:0)

之前我曾尝试过ResourceHandlerRegistry,但它没有用。但是,我通过在/ static文件夹中再创建一个文件夹来解决问题。我在/ resources / static文件夹中添加了另一个名为“static”的文件夹,最终的层次结构就是这样,/ resources / static / static / css / *

顺便说一句,我可以使用“/ static / css / *”映射静态资源,它与“/ {username} / {info}”映射不冲突,因为我的静态url由3个字符串字段组成并且映射只接受2个字符串参数。

可能有更优雅的解决方案,但没有时间为我找到它。谢谢你的回复。

相关问题