Compare commits

...
2 Commits
Author SHA1 Message Date
StarFleetCPTN ea057f14dc Merge pull request #13 from StarFleetCPTN/development
feat: Implement embedded static file serving
2025-03-08 13:20:29 -08:00
StarFleetCPTN 0da968fd5a feat: Implement embedded static file serving
- Use Go's embed.FS to serve static files directly from binary
- Remove explicit static directory creation
- Update static file serving method to use embedded filesystem
- Improve static file serving configuration with error handling
2025-03-08 13:17:33 -08:00
+13 -7
View File
@@ -1,8 +1,11 @@
package main package main
import ( import (
"embed"
"fmt" "fmt"
"io/fs"
"log" "log"
"net/http"
"os" "os"
"path/filepath" "path/filepath"
"time" "time"
@@ -16,6 +19,9 @@ import (
"golang.org/x/crypto/bcrypt" "golang.org/x/crypto/bcrypt"
) )
//go:embed static
var staticFiles embed.FS
func main() { func main() {
// Set Gin to release mode // Set Gin to release mode
gin.SetMode(gin.ReleaseMode) gin.SetMode(gin.ReleaseMode)
@@ -34,10 +40,6 @@ func main() {
dirs := []string{ dirs := []string{
cfg.DataDir, cfg.DataDir,
cfg.BackupDir, cfg.BackupDir,
// "templates",
"static",
"static/css",
"static/js",
} }
for _, dir := range dirs { for _, dir := range dirs {
@@ -101,9 +103,13 @@ func main() {
})) }))
router.Use(gin.Recovery()) router.Use(gin.Recovery())
// Serve static files // Serve embedded static files
router.Static("/static", "./static") staticFS, err := fs.Sub(staticFiles, "static")
log.Printf("Static file serving configured") if err != nil {
log.Fatalf("Failed to create sub-filesystem: %v", err)
}
router.StaticFS("/static", http.FS(staticFS))
log.Printf("Embedded static files configured for serving")
// Initialize web handlers // Initialize web handlers
webHandler, err := web.NewHandler(database, scheduler, cfg.JWTSecret, dbPath, cfg.BackupDir, cfg) webHandler, err := web.NewHandler(database, scheduler, cfg.JWTSecret, dbPath, cfg.BackupDir, cfg)