File tree Expand file tree Collapse file tree 4 files changed +58
-0
lines changed Expand file tree Collapse file tree 4 files changed +58
-0
lines changed Original file line number Diff line number Diff line change
1
+ <!DOCTYPE html>
2
+ < html >
3
+ < head >
4
+ < meta charset ="utf-8 ">
5
+ < title > go embed Example</ title >
6
+ < script src ="/static/main.js " charset ="utf-8 "> </ script >
7
+ </ head >
8
+ < body >
9
+ < h1 > go embed Example</ h1 >
10
+ </ body >
11
+ </ html >
Original file line number Diff line number Diff line change
1
+ alert ( "main.js" ) ;
Original file line number Diff line number Diff line change
1
+ package main
2
+
3
+ import (
4
+ "embed"
5
+ "io/fs"
6
+ "log"
7
+ "net/http"
8
+ "os"
9
+
10
+ "github.com/labstack/echo/v4"
11
+ )
12
+
13
+ //go:embed app
14
+ var embededFiles embed.FS
15
+
16
+ func getFileSystem (useOS bool ) http.FileSystem {
17
+ if useOS {
18
+ log .Print ("using live mode" )
19
+ return http .FS (os .DirFS ("app" ))
20
+ }
21
+
22
+ log .Print ("using embed mode" )
23
+ fsys , err := fs .Sub (embededFiles , "app" )
24
+ if err != nil {
25
+ panic (err )
26
+ }
27
+
28
+ return http .FS (fsys )
29
+ }
30
+
31
+ func main () {
32
+ e := echo .New ()
33
+ useOS := len (os .Args ) > 1 && os .Args [1 ] == "live"
34
+ assetHandler := http .FileServer (getFileSystem (useOS ))
35
+ e .GET ("/" , echo .WrapHandler (assetHandler ))
36
+ e .GET ("/static/*" , echo .WrapHandler (http .StripPrefix ("/static/" , assetHandler )))
37
+ e .Logger .Fatal (e .Start (":1323" ))
38
+ }
Original file line number Diff line number Diff line change @@ -14,6 +14,14 @@ description = "Embed resources recipe for Echo"
14
14
15
15
## [ Source Code] ({{< source "embed-resources" >}})
16
16
17
+ ## With go 1.16 embed feature
18
+
19
+ ` server.go `
20
+
21
+ {{< embed "embed/server.go" >}}
22
+
23
+ ## [ Source Code] ({{< source "embed" >}})
24
+
17
25
## Maintainers
18
26
19
27
- [ caarlos0] ( https://github.com/caarlos0 )
You can’t perform that action at this time.
0 commit comments