From 78138a13ca6f403df944f3ccf29928a6d466b341 Mon Sep 17 00:00:00 2001
From: abdu <abdukiran@gmail.com>
Date: Sun, 10 Nov 2024 18:53:28 +0100
Subject: [PATCH]  add controller for routing in vue history mode, update
 Dockerfile

---
 Dockerfile.backend => Dockerfile                   |  4 ++--
 .../todo/controller/FallbackController.java        | 14 ++++++++++++++
 2 files changed, 16 insertions(+), 2 deletions(-)
 rename Dockerfile.backend => Dockerfile (90%)
 create mode 100644 src/main/java/com/cloudcomputing/todo/controller/FallbackController.java

diff --git a/Dockerfile.backend b/Dockerfile
similarity index 90%
rename from Dockerfile.backend
rename to Dockerfile
index 8e43db1..aca4911 100644
--- a/Dockerfile.backend
+++ b/Dockerfile
@@ -1,5 +1,5 @@
 # need node/npm to run "npm run build" for our vue frontend
-FROM node:20-alpine as build-frontend
+FROM node:20-alpine AS build-frontend
 
 # working directory for our frontend
 WORKDIR /app
@@ -22,7 +22,7 @@ FROM eclipse-temurin:17-jre-alpine as build-backend
 WORKDIR /app
 
 # copying frontend to static folder so spring can serve it
-COPY --from build-frontend /app/dist /app/src/main/resources/static
+COPY --from=build-frontend /app/dist /app/src/main/resources/static
 
 # copying backend to root folder in container
 COPY . .
diff --git a/src/main/java/com/cloudcomputing/todo/controller/FallbackController.java b/src/main/java/com/cloudcomputing/todo/controller/FallbackController.java
new file mode 100644
index 0000000..cd60186
--- /dev/null
+++ b/src/main/java/com/cloudcomputing/todo/controller/FallbackController.java
@@ -0,0 +1,14 @@
+package com.cloudcomputing.todo.controller;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+@Controller
+public class FallbackController {
+
+    @RequestMapping(value = "/**/{path:[^\\.]*}")
+    public String redirect(){
+        return "forward:/index.html";
+    }
+}
-- 
GitLab