Added option to toggle gzip as it causes air browser refresh to break

This commit is contained in:
2025-02-13 23:59:08 +11:00
parent 6c02e3fe90
commit a0e7f77843
3 changed files with 6 additions and 3 deletions

View File

@@ -17,6 +17,7 @@ type Config struct {
Port string // Port to listen on
TrustedHost string // Domain/Hostname to accept as trusted
SSL bool // Flag for SSL Mode
GZIP bool // Flag for GZIP compression on requests
ReadHeaderTimeout time.Duration // Timeout for reading request headers in seconds
WriteTimeout time.Duration // Timeout for writing requests in seconds
IdleTimeout time.Duration // Timeout for idle connections in seconds
@@ -84,6 +85,7 @@ func GetConfig(args map[string]string) (*Config, error) {
Port: port,
TrustedHost: GetEnvDefault("TRUSTED_HOST", "127.0.0.1"),
SSL: GetEnvBool("SSL_MODE", false),
GZIP: GetEnvBool("GZIP", false),
ReadHeaderTimeout: GetEnvDur("READ_HEADER_TIMEOUT", 2),
WriteTimeout: GetEnvDur("WRITE_TIMEOUT", 10),
IdleTimeout: GetEnvDur("IDLE_TIMEOUT", 120),

View File

@@ -7,9 +7,10 @@ import (
"strings"
)
func Gzip(next http.Handler) http.Handler {
func Gzip(next http.Handler, useGzip bool) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if !strings.Contains(r.Header.Get("Accept-Encoding"), "gzip") {
if !strings.Contains(r.Header.Get("Accept-Encoding"), "gzip") ||
!useGzip {
next.ServeHTTP(w, r)
return
}

View File

@@ -34,7 +34,7 @@ func NewServer(
handler = middleware.Favicon(handler)
// Gzip
handler = middleware.Gzip(handler)
handler = middleware.Gzip(handler, config.GZIP)
// Start the timer for the request chain so logger can have accurate info
handler = middleware.StartTimer(handler)