Browse Source

Embed static assets in binary

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

Ref T536
embedded-data
Matt Baer 5 years ago
parent
commit
ec5616b2c3
3 changed files with 18 additions and 5 deletions
  1. +2
    -0
      .gitignore
  2. +13
    -3
      Makefile
  3. +3
    -2
      app.go

+ 2
- 0
.gitignore View File

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

bindata.go

+ 13
- 3
Makefile View File

@@ -12,7 +12,7 @@ IMAGE_NAME=writeas/writefreely

all : build

build: deps
build: assets deps
cd cmd/writefreely; $(GOBUILD) -v

build-linux: deps
@@ -50,11 +50,10 @@ install : build
cmd/writefreely/$(BINARY_NAME) --gen-keys
cd less/; $(MAKE) install $(MFLAGS)

release : clean ui
release : clean ui assets
mkdir build
cp -r templates build
cp -r pages build
cp -r static build
mkdir build/keys
cp schema.sql build
cp sqlite.sql build
@@ -78,6 +77,17 @@ release-docker :
ui : force_look
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 :
-rm -rf build
cd less/; $(MAKE) clean $(MFLAGS)


+ 3
- 2
app.go View File

@@ -27,6 +27,7 @@ import (
_ "github.com/go-sql-driver/mysql"
_ "github.com/mattn/go-sqlite3"

"github.com/elazarl/go-bindata-assetfs"
"github.com/gorilla/mux"
"github.com/gorilla/schema"
"github.com/gorilla/sessions"
@@ -41,7 +42,7 @@ import (
)

const (
staticDir = "static/"
staticDir = "static"
assumedTitleLen = 80
postsPerPage = 10

@@ -411,7 +412,7 @@ func Serve() {
}

// 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)
r.PathPrefix("/").Handler(fs)



Loading…
Cancel
Save