dimitri.codes icon indicating copy to clipboard operation
dimitri.codes copied to clipboard

https://dimitri.codes/bundling-react-spring-boot/

Open utterances-bot opened this issue 2 years ago • 3 comments

Bundling your React app with Spring boot | Dimitri's tutorials

In this tutorial I'll show you how you can bundle your React app together with Spring boot.

https://dimitri.codes/bundling-react-spring-boot/

utterances-bot avatar Nov 09 '22 15:11 utterances-bot

Hello. Nice and informative article. I'm facing a little bit of an issue, I guess because of the spring boot version I'm using. This line 'registry.addViewController("/{x:^(?!api$).*$}/**/{y[\w\-]+}").setViewName("forward:/index.html");)' causes an error:

Error creating bean with name 'viewControllerHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Initialization of bean failed; nested exception is org.springframework.web.util.pattern.PatternParseException: No more pattern data allowed after {...} or ** pattern element Caused by: org.springframework.web.util.pattern.PatternParseException: No more pattern data allowed after {...} or ** pattern element

pyofori avatar Nov 09 '22 15:11 pyofori

@pyofori That's true, this approach no longer works in the newest Spring Boot versions. Nowadays I usually write a custom filter in my backend. For example NotFoundIndexFilter. What this filter does is that each time a webpage is requested that is not containing our API-path, it's returning the index-page. The method I use for detecting if a webpage is requested is by checking if the Accept header contains text/html.

I'm updating the tutorial right now with new information because nowadays I also prefer putting the frontend-resources in its own JAR and including that JAR as a dependency in my backend-project.

g00glen00b avatar Nov 10 '22 08:11 g00glen00b

Thanks a lot. This is very helpful.

On Thu, 10 Nov 2022 at 08:12, Dimitri @.***> wrote:

@pyofori https://github.com/pyofori That's true, this approach no longer works in the newest Spring Boot versions. Nowadays I usually write a custom filter in my backend. For example NotFoundIndexFilter https://github.com/g00glen00b/medication-assistant/blob/master/application/src/main/java/be/g00glen00b/apps/mediminder/NotFoundIndexFilter.java. What this filter does is that each time a webpage is requested that is not containing our API-path, it's returning the index-page. The method I use for detecting if a webpage is requested is by checking if the Accept header contains text/html.

I'm updating the tutorial right now with new information because nowadays I also prefer putting the frontend-resources in its own JAR and including that JAR as a dependency in my backend-project.

— Reply to this email directly, view it on GitHub https://github.com/g00glen00b/dimitr.im/issues/132#issuecomment-1309920787, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGB4SKVAEK4ICZYXYUJYPMTWHSU7LANCNFSM6AAAAAAR3SDZ5E . You are receiving this because you were mentioned.Message ID: @.***>

pyofori avatar Nov 10 '22 08:11 pyofori