chore: init bj_power monorepo (dashboard/mes/wms/wms_client/workstation), clear subproject git metadata and align naming to folder names

This commit is contained in:
SunYF
2026-08-27 10:09:54 +08:00
commit 1f0ee844a4
408 changed files with 102201 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
package xhttp
import (
"net/http"
"os"
"path"
"strings"
)
const basename = "/"
type NotFoundHandler struct {
fs http.FileSystem
fileServer http.Handler
}
func NewNotFoundHandler(fs http.FileSystem) NotFoundHandler {
return NotFoundHandler{
fs: fs,
fileServer: http.FileServer(fs),
}
}
func (n NotFoundHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if strings.HasPrefix(r.URL.Path, "/api/") {
http.Error(w, "not found", http.StatusNotFound)
return
}
filePath := strings.TrimPrefix(path.Clean(r.URL.Path), basename)
if len(filePath) == 0 {
filePath = basename
}
file, err := n.fs.Open(filePath)
switch {
case err == nil:
n.fileServer.ServeHTTP(w, r)
_ = file.Close()
return
case os.IsNotExist(err):
r.URL.Path = "/" // all virtual routes in react app means visit index.html
n.fileServer.ServeHTTP(w, r)
return
default:
http.Error(w, "not found", http.StatusNotFound)
return
}
}