router_static.go: prefix JS with Origin

This commit is contained in:
Adhityaa 2018-06-03 16:42:01 +05:30
parent 01d1b1dbdf
commit 03f075e75a

View File

@ -14,21 +14,46 @@ func redirectLogin(w http.ResponseWriter, r *http.Request) {
http.Redirect(w, r, "/login", 301) http.Redirect(w, r, "/login", 301)
} }
type staticAssetPlugs struct {
Origin string
}
type staticHtmlPlugs struct { type staticHtmlPlugs struct {
CdnPrefix string CdnPrefix string
} }
func initStaticRouter(router *mux.Router) error { func initStaticRouter(router *mux.Router) error {
for _, path := range []string{"js", "css", "images"} { asset := make(map[string]string)
router.PathPrefix("/" + path + "/").HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
f, err := os.Stat("." + r.URL.Path) for _, dir := range []string{"js", "css", "images"} {
if err != nil || f.IsDir() { files, err := ioutil.ReadDir("./" + dir)
http.NotFound(w, r) if err != nil {
logger.Errorf("cannot read directory ./%s: %v", dir, err)
return err
} }
http.ServeFile(w, r, "."+r.URL.Path) for _, file := range files {
sl := string(os.PathSeparator)
path := sl + dir + sl + file.Name()
contents, err := ioutil.ReadFile("." + path)
if err != nil {
logger.Errorf("cannot read file %s: %v", path, err)
return err
}
if dir == "js" {
asset[path] = "window.API='" + os.Getenv("ORIGIN") + "/api';" + string(contents)
} else {
asset[path] = string(contents)
}
logger.Debugf("routing %s", path)
router.HandleFunc(path, func(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, asset[r.URL.Path])
}) })
} }
}
pages := []string{ pages := []string{
"login", "login",