Link rel preload boot data
This commit is contained in:
parent
9b6844449d
commit
4b4b2394a9
@ -6,7 +6,7 @@
|
|||||||
// dist/7.2948bed1.js.br
|
// dist/7.2948bed1.js.br
|
||||||
// dist/8.00bbe8cc.js.br
|
// dist/8.00bbe8cc.js.br
|
||||||
// dist/asset-manifest.json
|
// dist/asset-manifest.json
|
||||||
// dist/boot.150df3bc.js.br
|
// dist/boot.fbea1381.js.br
|
||||||
// dist/config.default.toml
|
// dist/config.default.toml
|
||||||
// dist/font/Montserrat-Bold.woff
|
// dist/font/Montserrat-Bold.woff
|
||||||
// dist/font/Montserrat-Bold.woff2
|
// dist/font/Montserrat-Bold.woff2
|
||||||
@ -109,7 +109,7 @@ func _42ad6c946JsBr() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "4.2ad6c946.js.br", size: 9768, mode: os.FileMode(436), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "4.2ad6c946.js.br", size: 9768, mode: os.FileMode(436), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
@ -129,7 +129,7 @@ func _51ce46502JsBr() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "5.1ce46502.js.br", size: 2318, mode: os.FileMode(436), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "5.1ce46502.js.br", size: 2318, mode: os.FileMode(436), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
@ -149,7 +149,7 @@ func _637d7ed80JsBr() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "6.37d7ed80.js.br", size: 1317, mode: os.FileMode(436), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "6.37d7ed80.js.br", size: 1317, mode: os.FileMode(436), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
@ -169,7 +169,7 @@ func _72948bed1JsBr() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "7.2948bed1.js.br", size: 5941, mode: os.FileMode(436), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "7.2948bed1.js.br", size: 5941, mode: os.FileMode(436), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
@ -189,12 +189,12 @@ func _800bbe8ccJsBr() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "8.00bbe8cc.js.br", size: 4227, mode: os.FileMode(436), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "8.00bbe8cc.js.br", size: 4227, mode: os.FileMode(436), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var _assetManifestJson = "\x7b\x0a\x20\x20\x22\x72\x75\x6e\x74\x69\x6d\x65\x2e\x6a\x73\x22\x3a\x20\x22\x2f\x72\x75\x6e\x74\x69\x6d\x65\x2e\x39\x34\x65\x32\x61\x32\x36\x30\x2e\x6a\x73\x22\x2c\x0a\x20\x20\x22\x62\x6f\x6f\x74\x2e\x6a\x73\x22\x3a\x20\x22\x2f\x62\x6f\x6f\x74\x2e\x31\x35\x30\x64\x66\x33\x62\x63\x2e\x6a\x73\x22\x2c\x0a\x20\x20\x22\x6d\x61\x69\x6e\x2e\x63\x73\x73\x22\x3a\x20\x22\x2f\x6d\x61\x69\x6e\x2e\x62\x38\x37\x31\x62\x30\x36\x31\x2e\x63\x73\x73\x22\x2c\x0a\x20\x20\x22\x6d\x61\x69\x6e\x2e\x6a\x73\x22\x3a\x20\x22\x2f\x6d\x61\x69\x6e\x2e\x33\x34\x62\x35\x65\x30\x66\x66\x2e\x6a\x73\x22\x2c\x0a\x20\x20\x22\x76\x65\x6e\x64\x6f\x72\x73\x7e\x6d\x61\x69\x6e\x2e\x6a\x73\x22\x3a\x20\x22\x2f\x76\x65\x6e\x64\x6f\x72\x73\x7e\x6d\x61\x69\x6e\x2e\x30\x39\x64\x35\x34\x39\x61\x66\x2e\x6a\x73\x22\x2c\x0a\x20\x20\x22\x34\x2e\x32\x61\x64\x36\x63\x39\x34\x36\x2e\x6a\x73\x22\x3a\x20\x22\x2f\x34\x2e\x32\x61\x64\x36\x63\x39\x34\x36\x2e\x6a\x73\x22\x2c\x0a\x20\x20\x22\x35\x2e\x31\x63\x65\x34\x36\x35\x30\x32\x2e\x6a\x73\x22\x3a\x20\x22\x2f\x35\x2e\x31\x63\x65\x34\x36\x35\x30\x32\x2e\x6a\x73\x22\x2c\x0a\x20\x20\x22\x36\x2e\x33\x37\x64\x37\x65\x64\x38\x30\x2e\x6a\x73\x22\x3a\x20\x22\x2f\x36\x2e\x33\x37\x64\x37\x65\x64\x38\x30\x2e\x6a\x73\x22\x2c\x0a\x20\x20\x22\x37\x2e\x32\x39\x34\x38\x62\x65\x64\x31\x2e\x6a\x73\x22\x3a\x20\x22\x2f\x37\x2e\x32\x39\x34\x38\x62\x65\x64\x31\x2e\x6a\x73\x22\x2c\x0a\x20\x20\x22\x38\x2e\x30\x30\x62\x62\x65\x38\x63\x63\x2e\x6a\x73\x22\x3a\x20\x22\x2f\x38\x2e\x30\x30\x62\x62\x65\x38\x63\x63\x2e\x6a\x73\x22\x2c\x0a\x20\x20\x22\x70\x72\x65\x63\x61\x63\x68\x65\x2d\x6d\x61\x6e\x69\x66\x65\x73\x74\x2e\x61\x63\x66\x38\x33\x30\x33\x33\x30\x36\x30\x34\x35\x30\x31\x65\x32\x31\x36\x62\x36\x33\x62\x66\x38\x31\x66\x65\x31\x37\x30\x61\x2e\x6a\x73\x22\x3a\x20\x22\x2f\x70\x72\x65\x63\x61\x63\x68\x65\x2d\x6d\x61\x6e\x69\x66\x65\x73\x74\x2e\x61\x63\x66\x38\x33\x30\x33\x33\x30\x36\x30\x34\x35\x30\x31\x65\x32\x31\x36\x62\x36\x33\x62\x66\x38\x31\x66\x65\x31\x37\x30\x61\x2e\x6a\x73\x22\x2c\x0a\x20\x20\x22\x73\x77\x2e\x6a\x73\x22\x3a\x20\x22\x2f\x73\x77\x2e\x6a\x73\x22\x0a\x7d"
|
var _assetManifestJson = "\x7b\x0a\x20\x20\x22\x72\x75\x6e\x74\x69\x6d\x65\x2e\x6a\x73\x22\x3a\x20\x22\x2f\x72\x75\x6e\x74\x69\x6d\x65\x2e\x39\x34\x65\x32\x61\x32\x36\x30\x2e\x6a\x73\x22\x2c\x0a\x20\x20\x22\x62\x6f\x6f\x74\x2e\x6a\x73\x22\x3a\x20\x22\x2f\x62\x6f\x6f\x74\x2e\x66\x62\x65\x61\x31\x33\x38\x31\x2e\x6a\x73\x22\x2c\x0a\x20\x20\x22\x6d\x61\x69\x6e\x2e\x63\x73\x73\x22\x3a\x20\x22\x2f\x6d\x61\x69\x6e\x2e\x62\x38\x37\x31\x62\x30\x36\x31\x2e\x63\x73\x73\x22\x2c\x0a\x20\x20\x22\x6d\x61\x69\x6e\x2e\x6a\x73\x22\x3a\x20\x22\x2f\x6d\x61\x69\x6e\x2e\x33\x34\x62\x35\x65\x30\x66\x66\x2e\x6a\x73\x22\x2c\x0a\x20\x20\x22\x76\x65\x6e\x64\x6f\x72\x73\x7e\x6d\x61\x69\x6e\x2e\x6a\x73\x22\x3a\x20\x22\x2f\x76\x65\x6e\x64\x6f\x72\x73\x7e\x6d\x61\x69\x6e\x2e\x30\x39\x64\x35\x34\x39\x61\x66\x2e\x6a\x73\x22\x2c\x0a\x20\x20\x22\x34\x2e\x32\x61\x64\x36\x63\x39\x34\x36\x2e\x6a\x73\x22\x3a\x20\x22\x2f\x34\x2e\x32\x61\x64\x36\x63\x39\x34\x36\x2e\x6a\x73\x22\x2c\x0a\x20\x20\x22\x35\x2e\x31\x63\x65\x34\x36\x35\x30\x32\x2e\x6a\x73\x22\x3a\x20\x22\x2f\x35\x2e\x31\x63\x65\x34\x36\x35\x30\x32\x2e\x6a\x73\x22\x2c\x0a\x20\x20\x22\x36\x2e\x33\x37\x64\x37\x65\x64\x38\x30\x2e\x6a\x73\x22\x3a\x20\x22\x2f\x36\x2e\x33\x37\x64\x37\x65\x64\x38\x30\x2e\x6a\x73\x22\x2c\x0a\x20\x20\x22\x37\x2e\x32\x39\x34\x38\x62\x65\x64\x31\x2e\x6a\x73\x22\x3a\x20\x22\x2f\x37\x2e\x32\x39\x34\x38\x62\x65\x64\x31\x2e\x6a\x73\x22\x2c\x0a\x20\x20\x22\x38\x2e\x30\x30\x62\x62\x65\x38\x63\x63\x2e\x6a\x73\x22\x3a\x20\x22\x2f\x38\x2e\x30\x30\x62\x62\x65\x38\x63\x63\x2e\x6a\x73\x22\x2c\x0a\x20\x20\x22\x70\x72\x65\x63\x61\x63\x68\x65\x2d\x6d\x61\x6e\x69\x66\x65\x73\x74\x2e\x61\x63\x66\x38\x33\x30\x33\x33\x30\x36\x30\x34\x35\x30\x31\x65\x32\x31\x36\x62\x36\x33\x62\x66\x38\x31\x66\x65\x31\x37\x30\x61\x2e\x6a\x73\x22\x3a\x20\x22\x2f\x70\x72\x65\x63\x61\x63\x68\x65\x2d\x6d\x61\x6e\x69\x66\x65\x73\x74\x2e\x61\x63\x66\x38\x33\x30\x33\x33\x30\x36\x30\x34\x35\x30\x31\x65\x32\x31\x36\x62\x36\x33\x62\x66\x38\x31\x66\x65\x31\x37\x30\x61\x2e\x6a\x73\x22\x2c\x0a\x20\x20\x22\x73\x77\x2e\x6a\x73\x22\x3a\x20\x22\x2f\x73\x77\x2e\x6a\x73\x22\x0a\x7d"
|
||||||
|
|
||||||
func assetManifestJsonBytes() ([]byte, error) {
|
func assetManifestJsonBytes() ([]byte, error) {
|
||||||
return bindataRead(
|
return bindataRead(
|
||||||
@ -209,27 +209,27 @@ func assetManifestJson() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "asset-manifest.json", size: 519, mode: os.FileMode(436), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "asset-manifest.json", size: 519, mode: os.FileMode(436), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var _boot150df3bcJsBr = "\x1b\xee\x00\x00\x8c\x94\x2e\x6f\x14\x23\x24\x99\x35\x6a\x5b\xa9\xc2\x3b\xa2\x51\xa7\x7f\xa8\xa8\xef\x61\x5a\x33\x5d\x9f\x2e\xe4\x4e\x33\x8a\x68\x4a\x95\x8a\x54\x85\x68\xcc\xde\x5e\x0b\xe4\x36\x76\x4e\x20\xaa\xdd\x22\x48\x7e\x08\x5b\xd3\xc8\x6d\xe9\x3f\x12\x74\x66\x1d\x17\x3e\x98\x89\x6c\xb1\x6d\x25\x7f\xaa\x64\x4d\x54\xf8\x81\x27\xcc\x89\x7c\xfa\x7e\x8a\xc5\xf7\xcd\x2c\x9d\xe2\xe2\x17\x48\x64\xd9\xeb\x64\x24\xd1\x0f\xa8\xff\xb8\x03\xfe\x8c\x87\x34\x49\x31\x95\x61\x33\x6a\x8f\x11\x0b\x61\xda\xe3\x66\xde\xae\x31\xc2\xb4\xce\x32\xfb\x41\x24\x35\xd3\x4f\xc2\x4b\x3c\x3a\x46\x9f\x8a\x81\xac\x14\xd2\xf5\xde\xb1\xff\x20\x5a\x83\x69\xa7\x83\xb9\x99\xfb\xe6\x6d\x5b\x25\xf3\xf2\x94\xd1\x01"
|
var _bootFbea1381JsBr = "\x1b\xd3\x00\x00\x8c\x94\x2e\x6f\x14\x59\x36\x97\xb2\xcd\xa9\xdd\x02\x49\x8c\xaf\xb0\x0c\x73\x85\x07\xac\x99\x2e\x3d\x59\xc8\x9d\x66\x57\x44\x53\xaa\x9c\x84\x68\xcc\xe8\x0d\x8f\xd7\xa1\x96\x19\x27\x29\x4a\x08\x7f\x76\x75\xb6\xa5\xf8\x92\xd8\x43\x3f\x2f\x7c\x80\x25\x5b\x92\xc4\xa9\x7f\x5d\xb6\x47\x2a\x11\xf4\x8e\xbf\xc8\xb7\x28\x3a\x3c\x8a\x22\xec\xbb\x5b\x33\x92\xb0\x82\xbd\x42\xff\x36\x67\xd7\x76\xb8\x4d\xd5\x7a\x79\xa2\xdb\x60\x28\xe6\xe2\xcf\xbf\xd5\x18\x11\x46\xdf\xa9\x27\x98\x72\xe1\xa2\x09\xfe\xde\xd1\xb1\x7f\x1b\x4f\xf9\x54\xd0\x3d\x8f\x1a\x07\xc1\xe4\x4f\x23\x4d\x07\xff\xf9\xff\xd7\x93\xc4\x65\xeb\x76\x63\xec\x03"
|
||||||
|
|
||||||
func boot150df3bcJsBrBytes() ([]byte, error) {
|
func bootFbea1381JsBrBytes() ([]byte, error) {
|
||||||
return bindataRead(
|
return bindataRead(
|
||||||
_boot150df3bcJsBr,
|
_bootFbea1381JsBr,
|
||||||
"boot.150df3bc.js.br",
|
"boot.fbea1381.js.br",
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
func boot150df3bcJsBr() (*asset, error) {
|
func bootFbea1381JsBr() (*asset, error) {
|
||||||
bytes, err := boot150df3bcJsBrBytes()
|
bytes, err := bootFbea1381JsBrBytes()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "boot.150df3bc.js.br", size: 172, mode: os.FileMode(436), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "boot.fbea1381.js.br", size: 157, mode: os.FileMode(436), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
@ -469,7 +469,7 @@ func main34b5e0ffJsBr() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "main.34b5e0ff.js.br", size: 11010, mode: os.FileMode(436), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "main.34b5e0ff.js.br", size: 11010, mode: os.FileMode(436), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
@ -489,7 +489,7 @@ func mainB871b061CssBr() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "main.b871b061.css.br", size: 2437, mode: os.FileMode(436), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "main.b871b061.css.br", size: 2437, mode: os.FileMode(436), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
@ -509,7 +509,7 @@ func precacheManifestAcf830330604501e216b63bf81fe170aJsBr() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "precache-manifest.acf830330604501e216b63bf81fe170a.js.br", size: 404, mode: os.FileMode(436), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "precache-manifest.acf830330604501e216b63bf81fe170a.js.br", size: 404, mode: os.FileMode(436), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
@ -529,7 +529,7 @@ func runtime94e2a260JsBr() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "runtime.94e2a260.js.br", size: 1004, mode: os.FileMode(436), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "runtime.94e2a260.js.br", size: 1004, mode: os.FileMode(436), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
@ -549,7 +549,7 @@ func swJsBr() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "sw.js.br", size: 197, mode: os.FileMode(436), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "sw.js.br", size: 197, mode: os.FileMode(436), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
@ -569,7 +569,7 @@ func vendorsMain09d549afJsBr() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "vendors~main.09d549af.js.br", size: 67529, mode: os.FileMode(436), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "vendors~main.09d549af.js.br", size: 67529, mode: os.FileMode(436), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
@ -589,7 +589,7 @@ func workboxV363WorkboxBackgroundSyncProdJsBr() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-background-sync.prod.js.br", size: 1297, mode: os.FileMode(420), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-background-sync.prod.js.br", size: 1297, mode: os.FileMode(420), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
@ -609,7 +609,7 @@ func workboxV363WorkboxBroadcastCacheUpdateProdJsBr() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-broadcast-cache-update.prod.js.br", size: 512, mode: os.FileMode(420), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-broadcast-cache-update.prod.js.br", size: 512, mode: os.FileMode(420), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
@ -629,7 +629,7 @@ func workboxV363WorkboxCacheExpirationProdJsBr() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-cache-expiration.prod.js.br", size: 1242, mode: os.FileMode(420), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-cache-expiration.prod.js.br", size: 1242, mode: os.FileMode(420), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
@ -649,7 +649,7 @@ func workboxV363WorkboxCacheableResponseProdJsBr() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-cacheable-response.prod.js.br", size: 298, mode: os.FileMode(420), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-cacheable-response.prod.js.br", size: 298, mode: os.FileMode(420), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
@ -669,7 +669,7 @@ func workboxV363WorkboxCoreProdJsBr() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-core.prod.js.br", size: 2585, mode: os.FileMode(420), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-core.prod.js.br", size: 2585, mode: os.FileMode(420), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
@ -689,7 +689,7 @@ func workboxV363WorkboxGoogleAnalyticsProdJsBr() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-google-analytics.prod.js.br", size: 869, mode: os.FileMode(420), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-google-analytics.prod.js.br", size: 869, mode: os.FileMode(420), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
@ -709,7 +709,7 @@ func workboxV363WorkboxNavigationPreloadProdJsBr() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-navigation-preload.prod.js.br", size: 253, mode: os.FileMode(420), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-navigation-preload.prod.js.br", size: 253, mode: os.FileMode(420), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
@ -729,7 +729,7 @@ func workboxV363WorkboxPrecachingProdJsBr() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-precaching.prod.js.br", size: 1978, mode: os.FileMode(420), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-precaching.prod.js.br", size: 1978, mode: os.FileMode(420), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
@ -749,7 +749,7 @@ func workboxV363WorkboxRangeRequestsProdJsBr() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-range-requests.prod.js.br", size: 700, mode: os.FileMode(420), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-range-requests.prod.js.br", size: 700, mode: os.FileMode(420), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
@ -769,7 +769,7 @@ func workboxV363WorkboxRoutingProdJsBr() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-routing.prod.js.br", size: 1147, mode: os.FileMode(420), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-routing.prod.js.br", size: 1147, mode: os.FileMode(420), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
@ -789,7 +789,7 @@ func workboxV363WorkboxStrategiesProdJsBr() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-strategies.prod.js.br", size: 1093, mode: os.FileMode(420), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-strategies.prod.js.br", size: 1093, mode: os.FileMode(420), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
@ -809,7 +809,7 @@ func workboxV363WorkboxStreamsProdJsBr() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-streams.prod.js.br", size: 667, mode: os.FileMode(420), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-streams.prod.js.br", size: 667, mode: os.FileMode(420), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
@ -829,7 +829,7 @@ func workboxV363WorkboxSwJsBr() (*asset, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-sw.js.br", size: 670, mode: os.FileMode(420), modTime: time.Unix(1541664444, 0)}
|
info := bindataFileInfo{name: "workbox-v3.6.3/workbox-sw.js.br", size: 670, mode: os.FileMode(420), modTime: time.Unix(1541732120, 0)}
|
||||||
a := &asset{bytes: bytes, info: info}
|
a := &asset{bytes: bytes, info: info}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
@ -892,7 +892,7 @@ var _bindata = map[string]func() (*asset, error){
|
|||||||
"7.2948bed1.js.br": _72948bed1JsBr,
|
"7.2948bed1.js.br": _72948bed1JsBr,
|
||||||
"8.00bbe8cc.js.br": _800bbe8ccJsBr,
|
"8.00bbe8cc.js.br": _800bbe8ccJsBr,
|
||||||
"asset-manifest.json": assetManifestJson,
|
"asset-manifest.json": assetManifestJson,
|
||||||
"boot.150df3bc.js.br": boot150df3bcJsBr,
|
"boot.fbea1381.js.br": bootFbea1381JsBr,
|
||||||
"config.default.toml": configDefaultToml,
|
"config.default.toml": configDefaultToml,
|
||||||
"font/Montserrat-Bold.woff": fontMontserratBoldWoff,
|
"font/Montserrat-Bold.woff": fontMontserratBoldWoff,
|
||||||
"font/Montserrat-Bold.woff2": fontMontserratBoldWoff2,
|
"font/Montserrat-Bold.woff2": fontMontserratBoldWoff2,
|
||||||
@ -971,7 +971,7 @@ var _bintree = &bintree{nil, map[string]*bintree{
|
|||||||
"7.2948bed1.js.br": &bintree{_72948bed1JsBr, map[string]*bintree{}},
|
"7.2948bed1.js.br": &bintree{_72948bed1JsBr, map[string]*bintree{}},
|
||||||
"8.00bbe8cc.js.br": &bintree{_800bbe8ccJsBr, map[string]*bintree{}},
|
"8.00bbe8cc.js.br": &bintree{_800bbe8ccJsBr, map[string]*bintree{}},
|
||||||
"asset-manifest.json": &bintree{assetManifestJson, map[string]*bintree{}},
|
"asset-manifest.json": &bintree{assetManifestJson, map[string]*bintree{}},
|
||||||
"boot.150df3bc.js.br": &bintree{boot150df3bcJsBr, map[string]*bintree{}},
|
"boot.fbea1381.js.br": &bintree{bootFbea1381JsBr, map[string]*bintree{}},
|
||||||
"config.default.toml": &bintree{configDefaultToml, map[string]*bintree{}},
|
"config.default.toml": &bintree{configDefaultToml, map[string]*bintree{}},
|
||||||
"font": &bintree{nil, map[string]*bintree{
|
"font": &bintree{nil, map[string]*bintree{
|
||||||
"Montserrat-Bold.woff": &bintree{fontMontserratBoldWoff, map[string]*bintree{}},
|
"Montserrat-Bold.woff": &bintree{fontMontserratBoldWoff, map[string]*bintree{}},
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
// This entrypoint gets inlined in the index page cached by service workers
|
// This entrypoint gets inlined in the index page cached by service workers
|
||||||
// and is responsible for fetching the data we would otherwise embed
|
// and is responsible for fetching the data we would otherwise embed
|
||||||
|
|
||||||
window.__env__ = fetch(`/data${window.location.pathname}`, {
|
window.__env__ = fetch('/data', {
|
||||||
credentials: 'same-origin'
|
credentials: 'same-origin'
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
if (res.ok) {
|
if (res.ok) {
|
||||||
|
24
server/gzip.go
Normal file
24
server/gzip.go
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
package server
|
||||||
|
|
||||||
|
import (
|
||||||
|
"compress/gzip"
|
||||||
|
"io"
|
||||||
|
"sync"
|
||||||
|
)
|
||||||
|
|
||||||
|
var gzipWriterPool = sync.Pool{
|
||||||
|
New: func() interface{} {
|
||||||
|
return gzip.NewWriter(nil)
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
func getGzipWriter(w io.Writer) *gzip.Writer {
|
||||||
|
gzw := gzipWriterPool.Get().(*gzip.Writer)
|
||||||
|
gzw.Reset(w)
|
||||||
|
return gzw
|
||||||
|
}
|
||||||
|
|
||||||
|
func putGzipWriter(gzw *gzip.Writer) {
|
||||||
|
gzw.Close()
|
||||||
|
gzipWriterPool.Put(gzw)
|
||||||
|
}
|
30
server/http.go
Normal file
30
server/http.go
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
package server
|
||||||
|
|
||||||
|
import (
|
||||||
|
"log"
|
||||||
|
"net/http"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/mailru/easyjson"
|
||||||
|
)
|
||||||
|
|
||||||
|
func writeJSON(w http.ResponseWriter, r *http.Request, data easyjson.Marshaler) {
|
||||||
|
json, err := easyjson.Marshal(data)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
fail(w, http.StatusInternalServerError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
w.Header().Set("Content-Type", "application/json")
|
||||||
|
|
||||||
|
if len(json) > 1400 && strings.Contains(r.Header.Get("Accept-Encoding"), "gzip") {
|
||||||
|
w.Header().Set("Content-Encoding", "gzip")
|
||||||
|
|
||||||
|
gzw := getGzipWriter(w)
|
||||||
|
gzw.Write(json)
|
||||||
|
putGzipWriter(gzw)
|
||||||
|
} else {
|
||||||
|
w.Write(json)
|
||||||
|
}
|
||||||
|
}
|
@ -1,42 +1,75 @@
|
|||||||
<%! data *indexData, cssPath string, inlineScript string, scripts []string %>
|
<%! data *indexData, cssPath string, inlineScript string, scripts []string, sw
|
||||||
|
bool %> <%% import "github.com/mailru/easyjson" %%>
|
||||||
<%% import "github.com/mailru/easyjson" %%>
|
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<meta name="theme-color" content="#f0f0f0" />
|
||||||
|
|
||||||
<head>
|
<title>Dispatch</title>
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<meta name="theme-color" content="#222">
|
|
||||||
|
|
||||||
<title>Dispatch</title>
|
<% if sw { %>
|
||||||
|
<link rel="preload" href="/data" as="fetch" crossorigin="anonymous" />
|
||||||
|
<% } %>
|
||||||
|
|
||||||
<link rel="preload" href="/font/fontello.woff2?48901973" as="font" type="font/woff2" crossorigin="anonymous">
|
<script>
|
||||||
<link rel="preload" href="/font/RobotoMono-Regular.woff2" as="font" type="font/woff2" crossorigin="anonymous">
|
<%== inlineScript %>
|
||||||
<link rel="preload" href="/font/Montserrat-Regular.woff2" as="font" type="font/woff2" crossorigin="anonymous">
|
</script>
|
||||||
<link rel="preload" href="/font/Montserrat-Bold.woff2" as="font" type="font/woff2" crossorigin="anonymous">
|
|
||||||
<link rel="preload" href="/font/RobotoMono-Bold.woff2" as="font" type="font/woff2" crossorigin="anonymous">
|
|
||||||
|
|
||||||
<% if cssPath != "" { %>
|
<link
|
||||||
<link href="<%== cssPath %>" rel="stylesheet">
|
rel="preload"
|
||||||
<% } %>
|
href="/font/fontello.woff2?48901973"
|
||||||
|
as="font"
|
||||||
|
type="font/woff2"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="preload"
|
||||||
|
href="/font/RobotoMono-Regular.woff2"
|
||||||
|
as="font"
|
||||||
|
type="font/woff2"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="preload"
|
||||||
|
href="/font/Montserrat-Regular.woff2"
|
||||||
|
as="font"
|
||||||
|
type="font/woff2"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="preload"
|
||||||
|
href="/font/Montserrat-Bold.woff2"
|
||||||
|
as="font"
|
||||||
|
type="font/woff2"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="preload"
|
||||||
|
href="/font/RobotoMono-Bold.woff2"
|
||||||
|
as="font"
|
||||||
|
type="font/woff2"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
|
|
||||||
<link rel="icon" href="data:;base64,=">
|
<% if cssPath != "" { %>
|
||||||
|
<link href="<%== cssPath %>" rel="stylesheet" />
|
||||||
|
<% } %>
|
||||||
|
|
||||||
<script><%== inlineScript %></script>
|
<link rel="icon" href="data:;base64,=" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div id="root"></div>
|
<div id="root"></div>
|
||||||
|
|
||||||
<% if data != nil { %>
|
|
||||||
<script id="env" type="application/json"><% easyjson.MarshalToWriter(data, w) %></script>
|
|
||||||
<% } %>
|
|
||||||
|
|
||||||
<% for _, script := range scripts { %>
|
|
||||||
<script src="<%== script %>"></script>
|
|
||||||
<% } %>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
|
<% if data != nil { %>
|
||||||
|
<script id="env" type="application/json">
|
||||||
|
<% easyjson.MarshalToWriter(data, w) %>
|
||||||
|
</script>
|
||||||
|
<% } %> <% for _, script := range scripts { %>
|
||||||
|
<script src="<%== script %>"></script>
|
||||||
|
<% } %>
|
||||||
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -7,16 +7,20 @@ import (
|
|||||||
"github.com/mailru/easyjson"
|
"github.com/mailru/easyjson"
|
||||||
)
|
)
|
||||||
|
|
||||||
func IndexTemplate(w io.Writer, data *indexData, cssPath string, inlineScript string, scripts []string) error {
|
func IndexTemplate(w io.Writer, data *indexData, cssPath string, inlineScript string, scripts []string, sw bool) error {
|
||||||
io.WriteString(w, "<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"><meta name=\"theme-color\" content=\"#222\"><title>Dispatch</title><link rel=\"preload\" href=\"/font/fontello.woff2?48901973\" as=\"font\" type=\"font/woff2\" crossorigin=\"anonymous\"><link rel=\"preload\" href=\"/font/RobotoMono-Regular.woff2\" as=\"font\" type=\"font/woff2\" crossorigin=\"anonymous\"><link rel=\"preload\" href=\"/font/Montserrat-Regular.woff2\" as=\"font\" type=\"font/woff2\" crossorigin=\"anonymous\"><link rel=\"preload\" href=\"/font/Montserrat-Bold.woff2\" as=\"font\" type=\"font/woff2\" crossorigin=\"anonymous\"><link rel=\"preload\" href=\"/font/RobotoMono-Bold.woff2\" as=\"font\" type=\"font/woff2\" crossorigin=\"anonymous\">")
|
io.WriteString(w, "<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"><meta name=\"theme-color\" content=\"#f0f0f0\"><title>Dispatch</title>")
|
||||||
|
if sw {
|
||||||
|
io.WriteString(w, "<link rel=\"preload\" href=\"/data\" as=\"fetch\" crossorigin=\"anonymous\">")
|
||||||
|
}
|
||||||
|
io.WriteString(w, "<script>")
|
||||||
|
io.WriteString(w, inlineScript )
|
||||||
|
io.WriteString(w, "</script><link rel=\"preload\" href=\"/font/fontello.woff2?48901973\" as=\"font\" type=\"font/woff2\" crossorigin=\"anonymous\"><link rel=\"preload\" href=\"/font/RobotoMono-Regular.woff2\" as=\"font\" type=\"font/woff2\" crossorigin=\"anonymous\"><link rel=\"preload\" href=\"/font/Montserrat-Regular.woff2\" as=\"font\" type=\"font/woff2\" crossorigin=\"anonymous\"><link rel=\"preload\" href=\"/font/Montserrat-Bold.woff2\" as=\"font\" type=\"font/woff2\" crossorigin=\"anonymous\"><link rel=\"preload\" href=\"/font/RobotoMono-Bold.woff2\" as=\"font\" type=\"font/woff2\" crossorigin=\"anonymous\">")
|
||||||
if cssPath != "" {
|
if cssPath != "" {
|
||||||
io.WriteString(w, "<link href=\"")
|
io.WriteString(w, "<link href=\"")
|
||||||
io.WriteString(w, cssPath )
|
io.WriteString(w, cssPath )
|
||||||
io.WriteString(w, "\" rel=\"stylesheet\">")
|
io.WriteString(w, "\" rel=\"stylesheet\">")
|
||||||
}
|
}
|
||||||
io.WriteString(w, "<link rel=\"icon\" href=\"data:;base64,=\"><script>")
|
io.WriteString(w, "<link rel=\"icon\" href=\"data:;base64,=\"></head><body><div id=\"root\"></div>")
|
||||||
io.WriteString(w, inlineScript )
|
|
||||||
io.WriteString(w, "</script></head><body><div id=\"root\"></div>")
|
|
||||||
if data != nil {
|
if data != nil {
|
||||||
io.WriteString(w, "<script id=\"env\" type=\"application/json\">")
|
io.WriteString(w, "<script id=\"env\" type=\"application/json\">")
|
||||||
easyjson.MarshalToWriter(data, w)
|
easyjson.MarshalToWriter(data, w)
|
||||||
|
@ -83,6 +83,15 @@ func getIndexData(r *http.Request, path string, state *State) *indexData {
|
|||||||
}
|
}
|
||||||
data.Channels = channels
|
data.Channels = channels
|
||||||
|
|
||||||
|
referer, err := url.Parse(r.Header.Get("Referer"))
|
||||||
|
if err == nil {
|
||||||
|
server, channel := getTabFromPath(referer.EscapedPath())
|
||||||
|
if isInChannel(channels, server, channel) {
|
||||||
|
data.addUsersAndMessages(server, channel, state)
|
||||||
|
return &data
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
server, channel := getTabFromPath(path)
|
server, channel := getTabFromPath(path)
|
||||||
if isInChannel(channels, server, channel) {
|
if isInChannel(channels, server, channel) {
|
||||||
data.addUsersAndMessages(server, channel, state)
|
data.addUsersAndMessages(server, channel, state)
|
||||||
|
@ -163,7 +163,7 @@ func (d *Dispatch) initFileServer() {
|
|||||||
|
|
||||||
serviceWorker = decompressedAsset("sw.js")
|
serviceWorker = decompressedAsset("sw.js")
|
||||||
hash.Reset()
|
hash.Reset()
|
||||||
IndexTemplate(hash, nil, indexStylesheet, inlineScriptSW, indexScripts)
|
IndexTemplate(hash, nil, indexStylesheet, inlineScriptSW, indexScripts, true)
|
||||||
indexHash := base64.StdEncoding.EncodeToString(hash.Sum(nil))
|
indexHash := base64.StdEncoding.EncodeToString(hash.Sum(nil))
|
||||||
|
|
||||||
serviceWorker = append(serviceWorker, []byte(`
|
serviceWorker = append(serviceWorker, []byte(`
|
||||||
@ -324,6 +324,7 @@ func (d *Dispatch) serveIndex(w http.ResponseWriter, r *http.Request) {
|
|||||||
w.Header().Set("X-Content-Type-Options", "nosniff")
|
w.Header().Set("X-Content-Type-Options", "nosniff")
|
||||||
w.Header().Set("X-Frame-Options", "deny")
|
w.Header().Set("X-Frame-Options", "deny")
|
||||||
w.Header().Set("X-XSS-Protection", "1; mode=block")
|
w.Header().Set("X-XSS-Protection", "1; mode=block")
|
||||||
|
w.Header().Set("Referrer-Policy", "same-origin")
|
||||||
|
|
||||||
if hstsHeader != "" {
|
if hstsHeader != "" {
|
||||||
w.Header().Set("Strict-Transport-Security", hstsHeader)
|
w.Header().Set("Strict-Transport-Security", hstsHeader)
|
||||||
@ -339,11 +340,11 @@ func (d *Dispatch) serveIndex(w http.ResponseWriter, r *http.Request) {
|
|||||||
if strings.Contains(r.Header.Get("Accept-Encoding"), "gzip") {
|
if strings.Contains(r.Header.Get("Accept-Encoding"), "gzip") {
|
||||||
w.Header().Set("Content-Encoding", "gzip")
|
w.Header().Set("Content-Encoding", "gzip")
|
||||||
|
|
||||||
gzw := gzip.NewWriter(w)
|
gzw := getGzipWriter(w)
|
||||||
IndexTemplate(gzw, data, indexStylesheet, inline, indexScripts)
|
IndexTemplate(gzw, data, indexStylesheet, inline, indexScripts, sw)
|
||||||
gzw.Close()
|
putGzipWriter(gzw)
|
||||||
} else {
|
} else {
|
||||||
IndexTemplate(w, data, indexStylesheet, inline, indexScripts)
|
IndexTemplate(w, data, indexStylesheet, inline, indexScripts, sw)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,7 +13,6 @@ import (
|
|||||||
"github.com/khlieng/dispatch/pkg/letsencrypt"
|
"github.com/khlieng/dispatch/pkg/letsencrypt"
|
||||||
"github.com/khlieng/dispatch/pkg/session"
|
"github.com/khlieng/dispatch/pkg/session"
|
||||||
"github.com/khlieng/dispatch/storage"
|
"github.com/khlieng/dispatch/storage"
|
||||||
"github.com/mailru/easyjson"
|
|
||||||
"github.com/spf13/viper"
|
"github.com/spf13/viper"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -183,9 +182,9 @@ func (d *Dispatch) serve(w http.ResponseWriter, r *http.Request) {
|
|||||||
d.upgradeWS(w, r, state)
|
d.upgradeWS(w, r, state)
|
||||||
} else if strings.HasPrefix(r.URL.Path, "/data") {
|
} else if strings.HasPrefix(r.URL.Path, "/data") {
|
||||||
state := d.handleAuth(w, r, false, false)
|
state := d.handleAuth(w, r, false, false)
|
||||||
data := getIndexData(r, r.URL.EscapedPath()[5:], state)
|
data := getIndexData(r, "/", state)
|
||||||
|
|
||||||
easyjson.MarshalToHTTPResponseWriter(data, w)
|
writeJSON(w, r, data)
|
||||||
} else {
|
} else {
|
||||||
d.serveFiles(w, r)
|
d.serveFiles(w, r)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user