Kode: Vælg alt
sudo apt-get -y install golang-go
Programmet er udviklet i programmeringssproget Go, og det ser således ud:
Kode: Vælg alt
package main
import (
"flag"
"fmt"
"net/http"
"os"
)
func main() {
var dir string
var port uint
var localhost_port_str string
flag.StringVar(&dir, "d", "", "The path to the directory. "+
"Is equal to the / (Root) dir of the static file web server")
flag.UintVar(&port, "p", 8108, "port number, default value: 8108, only listens on localhost")
flag.Parse()
if dir == "" {
flag.PrintDefaults()
os.Exit(-1)
}
if port > 65535 {
flag.PrintDefaults()
os.Exit(-2)
} else {
localhost_port_str = fmt.Sprintf("localhost:%d", port)
}
http.Handle("/", http.FileServer(http.Dir(dir)))
http.ListenAndServe(localhost_port_str, nil)
}
Go koden herover er alt hvad der skal til at lave en webserver til filer i filsystemet.
Du kan vælge portnummer med -p argumentet, eller stille dig tilfreds med at den starter op på port 8108.
Med -d argumentet vælger du den mappe som webserveren skal bruge (!BEMÆRK!: at angive et filnavn virker ikke!)
Gem filen og giv den navnet: filehttpd.go
Fra mappen hvor filehttpd.go er i oversættes den med:
Kode: Vælg alt
go build ./filehttpd.go
Ud kommer et kørbart program der ingen afhængigheder har: filehttpd
Kopier så filen til ~/bin fra mappen hvor filehttpd er i.:
Kode: Vælg alt
mkdir -p ~/bin;mv ./filehttpd ~/bin/filehttpd; chmod ugo+x ~/bin/filehttpd
Nu kan du læse HTML filer i filsystemet, og AJAX kald vil også virke, da det jo er en webserver:
Kode: Vælg alt
filehttpd -d="$HOME"
Kommandoen serverer filer fra din hjemmemappe, på localhost:8108, så du skal altså kopiere det her ind i din browsers adresselinie for at se det:
Kode: Vælg alt
http://localhost:8108
/Lars
Edit: ~/.bin -> ~/bin