2018-03-14 06:17:35 +01:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
2019-10-25 00:27:02 +02:00
|
|
|
"github.com/kataras/iris/v12"
|
2018-03-14 06:17:35 +01:00
|
|
|
)
|
|
|
|
|
|
|
|
// 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/...
|
2020-07-11 00:01:28 +02:00
|
|
|
// $ go run .
|
2020-07-16 10:42:45 +02:00
|
|
|
// $ ./embedding-gzipped-files-into-app
|
2018-03-14 06:17:35 +01:00
|
|
|
// "physical" files are not used, you can delete the "assets" folder and run the example.
|
|
|
|
|
|
|
|
func newApp() *iris.Application {
|
|
|
|
app := iris.New()
|
|
|
|
|
2020-07-11 00:01:28 +02:00
|
|
|
// 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".
|
2019-06-21 18:43:25 +02:00
|
|
|
app.HandleDir("/static", "./assets", iris.DirOptions{
|
|
|
|
Asset: GzipAsset,
|
|
|
|
AssetInfo: GzipAssetInfo,
|
|
|
|
AssetNames: GzipAssetNames,
|
2020-07-11 00:01:28 +02:00
|
|
|
AssetValidator: func(ctx iris.Context, name string) bool {
|
2020-07-17 11:03:20 +02:00
|
|
|
// ctx.Header("Vary", "Accept-Encoding")
|
2020-07-11 00:01:28 +02:00
|
|
|
ctx.Header("Content-Encoding", "gzip")
|
|
|
|
return true
|
|
|
|
},
|
2019-06-21 18:43:25 +02:00
|
|
|
})
|
2018-03-14 06:17:35 +01:00
|
|
|
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
|
2020-03-05 21:41:27 +01:00
|
|
|
app.Listen(":8080")
|
2018-03-14 06:17:35 +01:00
|
|
|
}
|