added .min.* support
This commit is contained in:
@@ -3,8 +3,13 @@ package frontend
|
||||
import (
|
||||
"html/template"
|
||||
"net/http"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/tdewolff/minify/v2"
|
||||
"github.com/tdewolff/minify/v2/css"
|
||||
"github.com/tdewolff/minify/v2/js"
|
||||
)
|
||||
|
||||
var dashboard = template.Must(template.ParseFiles(
|
||||
@@ -116,7 +121,50 @@ func Projects(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
}
|
||||
|
||||
var minifier *minify.M
|
||||
|
||||
func init() {
|
||||
minifier = minify.New()
|
||||
// Füge die Minifier für CSS und JS hinzu
|
||||
minifier.AddFunc("text/css", css.Minify)
|
||||
minifier.AddFunc("text/javascript", js.Minify)
|
||||
}
|
||||
|
||||
func Assets(w http.ResponseWriter, r *http.Request) {
|
||||
path := strings.TrimPrefix(r.URL.Path, "/assets/")
|
||||
http.ServeFile(w, r, filepath.Join("frontend/assets", path))
|
||||
fullPath := filepath.Join("frontend/assets", path)
|
||||
|
||||
w.Header().Set("Cache-Control", "public, max-age=3600")
|
||||
|
||||
var mimeType string
|
||||
if strings.HasSuffix(path, ".min.js") {
|
||||
mimeType = "text/javascript"
|
||||
fullPath = strings.Replace(fullPath, ".min.js", ".js", 1)
|
||||
} else if strings.HasSuffix(path, ".min.css") {
|
||||
mimeType = "text/css"
|
||||
fullPath = strings.Replace(fullPath, ".min.css", ".css", 1)
|
||||
}
|
||||
|
||||
info, err := os.Stat(fullPath)
|
||||
if err != nil || info.IsDir() {
|
||||
http.Error(w, "Asset not found", http.StatusNotFound)
|
||||
return
|
||||
}
|
||||
|
||||
if mimeType != "" {
|
||||
content, err := os.ReadFile(fullPath)
|
||||
if err != nil {
|
||||
http.Error(w, "Internal server error", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
|
||||
minifiedContent, err := minifier.Bytes(mimeType, content)
|
||||
if err == nil {
|
||||
w.Header().Set("Content-Type", mimeType)
|
||||
w.Write(minifiedContent)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
http.ServeFile(w, r, fullPath)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user