iris/_examples/file-server/embedding-gzipped-files-into-app/main.go
Gerasimos (Makis) Maropoulos 0f79728c88 https://github.com/kataras/iris/issues/1562#issuecomment-659845730
Former-commit-id: 60d9b0d77693895fdfbebe83712e9cc1ee3f8f26
2020-07-17 12:03:20 +03:00

43 lines
1.2 KiB
Go

package main
import (
"github.com/kataras/iris/v12"
)
// NOTE: need different tool than the "embedding-files-into-app" example.
//
// Follow these steps first:
// $ go get -u github.com/kataras/bindata/cmd/bindata
// $ bindata ./assets/...
// $ go run .
// $ ./embedding-gzipped-files-into-app
// "physical" files are not used, you can delete the "assets" folder and run the example.
func newApp() *iris.Application {
app := iris.New()
// Note the `GzipAsset` and `GzipAssetNames` are different from go-bindata's `Asset`,
// do not set the `Compress` option to true, instead
// use the `AssetValidator` option to manually set the content-encoding to "gzip".
app.HandleDir("/static", "./assets", iris.DirOptions{
Asset: GzipAsset,
AssetInfo: GzipAssetInfo,
AssetNames: GzipAssetNames,
AssetValidator: func(ctx iris.Context, name string) bool {
// ctx.Header("Vary", "Accept-Encoding")
ctx.Header("Content-Encoding", "gzip")
return true
},
})
return app
}
func main() {
app := newApp()
// http://localhost:8080/static/css/bootstrap.min.css
// http://localhost:8080/static/js/jquery-2.1.1.js
// http://localhost:8080/static/favicon.ico
app.Listen(":8080")
}