gpt4 book ai didi

java - 没有处理程序在 spring boot 中发现异常和静态资源

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:24:48 26 4
gpt4 key购买 nike

我有一个 Spring Boot 网络应用程序,我在其中捕获了 ControllerAdvice 类中的自定义异常。问题是如果没有找到处理程序,Spring Boot 默认不会抛出异常(它会将 json 发送回客户端)。

我想要的是在我的 ControllerAdvice 类中捕获 NoHandlerFoundException。为了使这成为可能,我明确配置了

spring.mvc.throw-exception-if-no-handler-found=true
spring.resources.add-mappings=false

这个技巧可以完成工作,我现在可以捕获 NoHandlerFoundException,但它会禁用 Spring 自动配置静态资源的路径。所以我所有的静态资源现在都不可用于客户端。我尝试使用另一种没有帮助的配置来解决此问题

spring.resources.static-locations=classpath:/resources/static/

当使用 spring.resources.add-mappings=false 禁用自动配置时,有人可以建议如何在 Spring Boot 中映射静态资源吗?

谢谢!

最佳答案

如果您的静态资源仅限于特定的 URL 路径,您可以仅配置那些由 Spring 静态资源处理程序处理的路径。在此示例中,/doc URL 路径由类路径中的 /resources/static/doc/ 文件夹中的静态资源提供服务:

spring.mvc.static-path-pattern=/doc/**
spring.resources.static-locations=classpath:/resources/static/doc/

您需要删除此配置:

spring.resources.add-mappings=false

关于java - 没有处理程序在 spring boot 中发现异常和静态资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39973945/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com