Embed static assets in binary

This embeds assets from the static/ dir in the binary and serves them.

Ref T536
embedded-data
Matt Baer 6 years ago
parent d4a08723aa
commit ec5616b2c3
  1. 2
      .gitignore
  2. 16
      Makefile
  3. 5
      app.go

2
.gitignore vendored

@ -5,3 +5,5 @@
build build
config.ini config.ini
*.db *.db
bindata.go

@ -12,7 +12,7 @@ IMAGE_NAME=writeas/writefreely
all : build all : build
build: deps build: assets deps
cd cmd/writefreely; $(GOBUILD) -v cd cmd/writefreely; $(GOBUILD) -v
build-linux: deps build-linux: deps
@ -50,11 +50,10 @@ install : build
cmd/writefreely/$(BINARY_NAME) --gen-keys cmd/writefreely/$(BINARY_NAME) --gen-keys
cd less/; $(MAKE) install $(MFLAGS) cd less/; $(MAKE) install $(MFLAGS)
release : clean ui release : clean ui assets
mkdir build mkdir build
cp -r templates build cp -r templates build
cp -r pages build cp -r pages build
cp -r static build
mkdir build/keys mkdir build/keys
cp schema.sql build cp schema.sql build
cp sqlite.sql build cp sqlite.sql build
@ -78,6 +77,17 @@ release-docker :
ui : force_look ui : force_look
cd less/; $(MAKE) $(MFLAGS) cd less/; $(MAKE) $(MFLAGS)
assets : generate
go-bindata -pkg writefreely -ignore=\\.gitignore static/...
dev-assets : generate
go-bindata -pkg writefreely -ignore=\\.gitignore -debug static/...
generate :
@hash go-bindata > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
$(GOGET) -u github.com/jteeuwen/go-bindata/...; \
fi
clean : clean :
-rm -rf build -rm -rf build
cd less/; $(MAKE) clean $(MFLAGS) cd less/; $(MAKE) clean $(MFLAGS)

@ -27,6 +27,7 @@ import (
_ "github.com/go-sql-driver/mysql" _ "github.com/go-sql-driver/mysql"
_ "github.com/mattn/go-sqlite3" _ "github.com/mattn/go-sqlite3"
"github.com/elazarl/go-bindata-assetfs"
"github.com/gorilla/mux" "github.com/gorilla/mux"
"github.com/gorilla/schema" "github.com/gorilla/schema"
"github.com/gorilla/sessions" "github.com/gorilla/sessions"
@ -41,7 +42,7 @@ import (
) )
const ( const (
staticDir = "static/" staticDir = "static"
assumedTitleLen = 80 assumedTitleLen = 80
postsPerPage = 10 postsPerPage = 10
@ -411,7 +412,7 @@ func Serve() {
} }
// Handle static files // Handle static files
fs := http.FileServer(http.Dir(staticDir)) fs := http.FileServer(&assetfs.AssetFS{Asset: Asset, AssetDir: AssetDir, AssetInfo: AssetInfo, Prefix: staticDir})
shttp.Handle("/", fs) shttp.Handle("/", fs)
r.PathPrefix("/").Handler(fs) r.PathPrefix("/").Handler(fs)

Loading…
Cancel
Save