fix: add SPA forwarding controller for React Router#40
Merged
Conversation
Spring Boot was returning 404 on direct navigation to React routes like /settings, /rules, etc. This controller forwards all non-API, non-static paths to index.html so React Router handles the routing. Excludes: /api, /ws, /swagger, /v3, /webjars, /static, /assets
There was a problem hiding this comment.
The SPA forwarding approach is correct in intent, but the current route pattern is brittle: it can miss some SPA routes and can over-exclude legitimate paths (e.g. /apiary/...) due to prefix matching. The mapping also risks forwarding root-level static files (e.g. robots.txt, manifest.webmanifest) to index.html unless you guard against dotted paths. Adjusting the patterns to (1) match both single- and multi-segment routes reliably and (2) exclude file-like paths will make this robust across common Spring routing behaviors.
Summary of changes
What changed
- Added a new Spring MVC controller
SpaForwardingController(src/main/java/com/eventara/config/SpaForwardingController.java). - Introduced a
@GetMappingthat forwards/and most non-API/non-static paths toforward:/index.htmlso React Router can handle client-side routing. - Implemented exclusions via a regex path variable to avoid forwarding requests under
api,ws,swagger,v3,webjars,static,assets, andfavicon.ico.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Spring Boot was returning 404 on direct navigation to React routes like /settings, /rules, etc. This controller forwards all non-API, non-static paths to index.html so React Router handles the routing.
Excludes: /api, /ws, /swagger, /v3, /webjars, /static, /assets