Skip to content

Instantly share code, notes, and snippets.

@ma6174
Created December 16, 2021 11:30
Show Gist options
  • Select an option

  • Save ma6174/f6bc3706ac74b45d16356bdef67337cc to your computer and use it in GitHub Desktop.

Select an option

Save ma6174/f6bc3706ac74b45d16356bdef67337cc to your computer and use it in GitHub Desktop.

Revisions

  1. ma6174 created this gist Dec 16, 2021.
    26 changes: 26 additions & 0 deletions fileserver.go
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,26 @@
    package main

    import (
    "flag"
    "log"
    "net/http"
    )

    type CorsHandler struct {
    http.Handler
    }

    func (c *CorsHandler) ServeHTTP(rw http.ResponseWriter, r *http.Request) {
    log.Println(r.RemoteAddr, r.URL)
    rw.Header().Set("Access-Control-Allow-Origin", "*")
    c.Handler.ServeHTTP(rw, r)
    return
    }

    func main() {
    addr := flag.String("addr", ":8000", "server listen addr")
    dir := flag.String("dir", ".", "dir")
    flag.Parse()
    log.Println("http fileserver running at", *addr)
    log.Panicln(http.ListenAndServe(*addr, &CorsHandler{http.FileServer(http.Dir(*dir))}))
    }