init: basic index and static routes

This commit is contained in:
efim 2023-10-28 14:47:01 +00:00
parent c7571d2e81
commit ae380d1976
4 changed files with 49 additions and 4 deletions

View File

@ -14,6 +14,7 @@ func main() {
flag.Parse()
fmt.Printf("Server will start on port %d", port)
routes.RegisterRoutes()
log.Fatal(http.ListenAndServe(fmt.Sprintf(":%d", port), nil))

View File

@ -1,15 +1,32 @@
package routes
import (
"fmt"
"embed"
"html/template"
"log"
"net/http"
)
//go:embed templates
var templateFs embed.FS
//go:embed static
var staticFilesFs embed.FS
func RegisterRoutes() {
// main page template
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
someString := "hello"
someNum := 123
fmt.Fprintf(w, "A response, with values %s and %d", someString, someNum)
var templFile = "templates/index.gohtml"
tmpl := template.Must(template.ParseFS(templateFs, templFile))
err := tmpl.Execute(w, 15)
if err != nil {
log.Printf("my error in executing template, huh\n %s", err)
}
})
// static resources route
http.Handle("/static/",
http.FileServer(http.FS(staticFilesFs)))
}

1
routes/static/hello.txt Normal file
View File

@ -0,0 +1 @@
this is some static file, it's ok

View File

@ -0,0 +1,26 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Untitled</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<!-- Place favicon.ico in the root directory -->
</head>
<body>
<!--[if lt IE 8]>
<p class="browserupgrade">
You are using an <strong>outdated</strong> browser. Please
<a href="http://browsehappy.com/">upgrade your browser</a> to improve
your experience.
</p>
<![endif]-->
<h1>Hello</h1>
<p>This is index</p>
</body>
</html>