-
-
Notifications
You must be signed in to change notification settings - Fork 2.5k
/
main.go
52 lines (47 loc) · 1.42 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package main
import (
"regexp"
"github.com/kataras/iris/v12"
)
var opts = iris.DirOptions{
IndexName: "index.html",
// Optionally register files (map's values) to be served
// when a specific path (map's key WITHOUT prefix) is requested
// is fired before client asks (HTTP/2 Push).
// E.g. "/" (which serves the `IndexName` if not empty).
//
// Note: Requires running server under TLS,
// that's why we use `iris.TLS` below.
// PushTargets: map[string][]string{
// "/": { // Relative path without prefix.
// "favicon.ico",
// "js/main.js",
// "css/main.css",
// // ^ Relative to the index, if need absolute ones start with a slash ('/').
// },
// },
// OR use regexp:
PushTargetsRegexp: map[string]*regexp.Regexp{
// Match all js, css and ico files
// from all files (recursively).
// "/": regexp.MustCompile("((.*).js|(.*).css|(.*).ico)$"),
// OR:
"/": iris.MatchCommonAssets,
"/app2/app2app3": iris.MatchCommonAssets,
},
Compress: true,
ShowList: true,
}
func main() {
app := iris.New()
app.HandleDir("/public", iris.Dir("./assets"), opts)
// Open your browser's Network tools,
// navigate to https://127.0.0.1/public.
// you should see `Initiator` tab: "Push / public".
//
// https://127.0.0.1/public
// https://127.0.0.1/public/app2
// https://127.0.0.1/public/app2/app2app3
// https://127.0.0.1/public/app2/app2app3/dirs
app.Run(iris.TLS(":443", "mycert.crt", "mykey.key"))
}