halo-dev / halo

强大易用的开源建站工具。
https://www.halo.run
GNU General Public License v3.0
33.32k stars 9.61k forks source link

Internal server error occurs while requesting a static resource which is not exist #6338

Closed JohnNiang closed 2 months ago

JohnNiang commented 2 months ago

System information

What is the project operation method?

Docker

What happened?

When we request a static resource which does not exist, internal server error will occur. IMO, in this situation, we should respond HTTP status code 404 instead of 500.

Relevant log output

2024-07-16T19:33:43.291+08:00 ERROR 7 --- [parallel-1] a.w.r.e.AbstractErrorWebExceptionHandler : [f4b910e5-206548]  500 Server Error for HTTP GET "/themes/run.halo.official2/assets/favicons/favicon-32x32.png"

java.io.FileNotFoundException: /root/.halo2/themes/run.halo.official2/templates/assets/favicons/favicon-32x32.png
    at org.springframework.core.io.FileSystemResource.lastModified(FileSystemResource.java:354) ~[spring-core-6.1.10.jar:6.1.10]
    Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
Error has been observed at the following site(s):
    *__checkpoint ⇢ run.halo.app.security.InitializeRedirectionWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ run.halo.app.security.device.DeviceSessionFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ AuthorizationWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ ExceptionTranslationWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ LogoutWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ ServerRequestCacheWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ SecurityContextServerWebExchangeWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ LogoutPageGeneratingWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ AnonymousAuthenticationWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ SecurityWebFilterChainProxy [DefaultWebFilterChain]
    *__checkpoint ⇢ TotpAuthenticationFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ AuthenticationWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ SecurityWebFilterChainProxy [DefaultWebFilterChain]
    *__checkpoint ⇢ RememberMeAuthenticationFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ SecurityWebFilterChainProxy [DefaultWebFilterChain]
    *__checkpoint ⇢ AuthenticationWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ AuthenticationWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ ReactorContextWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ CsrfWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ CorsWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ HttpHeaderWriterWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ ServerWebExchangeReactorContextWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ org.springframework.security.web.server.WebFilterChainProxy [DefaultWebFilterChain]
    *__checkpoint ⇢ run.halo.seo.tools.AdvancedRedirectWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ run.halo.comment.widget.captcha.CommentCaptchaFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ run.halo.oauth.Oauth2Authenticator [DefaultWebFilterChain]
    *__checkpoint ⇢ run.halo.seo.tools.CrawlRecordFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ run.halo.oauth.Oauth2AuthorizationRequestRedirectWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ run.halo.app.webfilter.AdditionalWebFilterChainProxy [DefaultWebFilterChain]
    *__checkpoint ⇢ HTTP GET "/themes/run.halo.official2/assets/favicons/favicon-32x32.png" [ExceptionHandlingWebHandler]
Original Stack Trace:
        at org.springframework.core.io.FileSystemResource.lastModified(FileSystemResource.java:354) ~[spring-core-6.1.10.jar:6.1.10]
        at org.springframework.web.reactive.resource.ResourceWebHandler.lambda$handle$2(ResourceWebHandler.java:449) ~[spring-webflux-6.1.10.jar:6.1.10]

Additional information

/kind bug /area core

JohnNiang commented 2 months ago

/assign /milestone 2.18.x