feat: add hashfs for static asset cache busting and live clock
- Add assets package with dev/prod build tags - Dev: serve from filesystem with Cache-Control: no-store - Prod: use hashfs for cache-busting URLs - Add LiveClock component to show SSE connection status - Update templates to use StaticPath for asset URLs
This commit is contained in:
@@ -51,8 +51,8 @@ templ NicknamePrompt(returnPath string) {
|
||||
// LiveClock shows the current server time, updated with each SSE patch.
|
||||
// If the clock stops updating, users know the connection is stale.
|
||||
templ LiveClock() {
|
||||
<div class="fixed top-2 right-2 flex items-center gap-1 text-xs opacity-50 font-mono">
|
||||
<div class="status status-xs status-success"></div>
|
||||
<div class="fixed top-2 right-2 flex items-center gap-1.5 text-xs opacity-60 font-mono">
|
||||
<div style="width: 6px; height: 6px; border-radius: 50%; background-color: #22c55e;"></div>
|
||||
{ time.Now().Format("15:04:05") }
|
||||
</div>
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package layouts
|
||||
|
||||
import (
|
||||
"github.com/ryanhamamura/games/assets"
|
||||
"github.com/ryanhamamura/games/config"
|
||||
"github.com/ryanhamamura/games/version"
|
||||
)
|
||||
@@ -11,8 +12,8 @@ templ Base(title string) {
|
||||
<head>
|
||||
<title>{ title }</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"/>
|
||||
<script defer type="module" src="/assets/js/datastar.js"></script>
|
||||
<link href="/assets/css/output.css" rel="stylesheet" type="text/css"/>
|
||||
<script defer type="module" src={ assets.StaticPath("js/datastar.js") }></script>
|
||||
<link href={ assets.StaticPath("css/output.css") } rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body class="flex flex-col h-screen">
|
||||
if config.Global.Environment == config.Dev {
|
||||
|
||||
Reference in New Issue
Block a user