40 lines
1010 B
Go
40 lines
1010 B
Go
package respond
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
"path/filepath"
|
|
)
|
|
|
|
func HXRedirect(w http.ResponseWriter, format string, a ...any) {
|
|
w.Header().Set("HX-Redirect", fmt.Sprintf(format, a...))
|
|
w.WriteHeader(http.StatusOK)
|
|
}
|
|
|
|
func ContentType(w http.ResponseWriter, r *http.Request) {
|
|
ext := filepath.Ext(r.URL.Path)
|
|
if contentType := mimeTypes[ext]; contentType != "" {
|
|
w.Header().Set("Content-Type", contentType)
|
|
}
|
|
}
|
|
|
|
// Common MIME types for static files
|
|
var mimeTypes = map[string]string{
|
|
".html": "text/html; charset=utf-8",
|
|
".css": "text/css; charset=utf-8",
|
|
".js": "application/javascript; charset=utf-8",
|
|
".json": "application/json; charset=utf-8",
|
|
".xml": "application/xml; charset=utf-8",
|
|
".png": "image/png",
|
|
".jpg": "image/jpeg",
|
|
".jpeg": "image/jpeg",
|
|
".gif": "image/gif",
|
|
".svg": "image/svg+xml",
|
|
".ico": "image/x-icon",
|
|
".webp": "image/webp",
|
|
".woff": "font/woff",
|
|
".woff2": "font/woff2",
|
|
".ttf": "font/ttf",
|
|
".eot": "application/vnd.ms-fontobject",
|
|
}
|