mirror of
https://github.com/labstack/echo.git
synced 2024-12-24 20:14:31 +02:00
HTML5 mode in static middleware
Signed-off-by: Vishal Rana <vr@labstack.com>
This commit is contained in:
parent
c24f06e7cb
commit
ecb021f830
@ -20,7 +20,10 @@ type (
|
||||
// Optional. Default value "index.html".
|
||||
Index string `json:"index"`
|
||||
|
||||
// Enable/disable directory browsing.
|
||||
// Enable HTML5 mode by forwarding all not-found routes to root.
|
||||
HTML5 bool `json:"html5"`
|
||||
|
||||
// Enable directory browsing.
|
||||
// Optional. Default value false.
|
||||
Browse bool `json:"browse"`
|
||||
}
|
||||
@ -30,6 +33,7 @@ var (
|
||||
// DefaultStaticConfig is the default static middleware config.
|
||||
DefaultStaticConfig = StaticConfig{
|
||||
Index: "index.html",
|
||||
HTML5: true,
|
||||
Browse: false,
|
||||
}
|
||||
)
|
||||
@ -60,7 +64,18 @@ func StaticWithConfig(config StaticConfig) echo.MiddlewareFunc {
|
||||
file := path.Clean(p)
|
||||
f, err := fs.Open(file)
|
||||
if err != nil {
|
||||
return next(c)
|
||||
// HTML5 mode
|
||||
err = next(c)
|
||||
if he, ok := err.(*echo.HTTPError); ok {
|
||||
if config.HTML5 && he.Code == http.StatusNotFound {
|
||||
file = ""
|
||||
f, err = fs.Open(file)
|
||||
} else {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
return err
|
||||
}
|
||||
}
|
||||
defer f.Close()
|
||||
fi, err := f.Stat()
|
||||
|
Loading…
Reference in New Issue
Block a user