iris/_examples/file-server/http2push-embedded-gzipped/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

46 lines
1.2 KiB
Go

package main
import (
"github.com/kataras/iris/v12"
)
// Follow the steps below:
// $ go get -u github.com/kataras/bindata/cmd/bindata
//
// $ bindata -prefix "../http2push/" ../http2push/assets/...
// # OR if the ./assets directory was inside this example foder:
// # bindata ./assets/...
//
// $ go run .
// Physical files are not used, you can delete the "assets" folder and run the example.
var opts = iris.DirOptions{
IndexName: "/index.html",
PushTargets: map[string][]string{
"/": { // Relative path without route prefix.
"favicon.ico",
"js/main.js",
"css/main.css",
// ^ Relative to the index, if need absolute ones start with a slash ('/').
},
},
Compress: false, // SHOULD be set to false, files already compressed.
ShowList: true,
Asset: GzipAsset,
AssetInfo: GzipAssetInfo,
AssetNames: GzipAssetNames,
// Required for pre-compressed files:
AssetValidator: func(ctx iris.Context, _ string) bool {
// ctx.Header("Vary", "Content-Encoding")
ctx.Header("Content-Encoding", "gzip")
return true
},
}
func main() {
app := iris.New()
app.HandleDir("/public", "./assets", opts)
app.Run(iris.TLS(":443", "../http2push/mycert.crt", "../http2push/mykey.key"))
}