在配置中定义servlet路径时如何在spring boot中提供静态内容
Posted
技术标签:
【中文标题】在配置中定义servlet路径时如何在spring boot中提供静态内容【英文标题】:How to serve static content in spring boot when servlet path is defined in config 【发布时间】:2020-05-15 19:02:03 【问题描述】:我注意到,在指定 servlet 路径时,提供静态内容不能开箱即用。事实上,我无法让它以任何方式工作。这是我的 application.properties 文件的一部分:
server.servlet.context-path=/online
spring.mvc.servlet.path=/app
如果我注释掉 spring.mvc.servlet.path=/app
,那么当我点击 url localhost:8080/online/styles.css
时,我就可以访问 resources/static
文件夹下的 styles.css 文件。但是有了这个配置,应用程序就会抛出 404 错误。 DispathcherServlet 肯定不会处理该请求,AFAIK 是预期的行为。如果ResourceHttpRequestHandler
类是处理它的类,那么它的handleRequest
方法会错过请求。关于应该做什么的任何想法?
【问题讨论】:
【参考方案1】:ResourceHttpRequestHandler
也受到spring.mvc.servlet.path
变化的影响,因此css将作为localhost:8080/online/app/styles.css
服务
【讨论】:
以上是关于在配置中定义servlet路径时如何在spring boot中提供静态内容的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring Boot Tests 中设置 servlet 上下文路径?