Skip to content

Commit

Permalink
Add an option to allow empty root in the fsHandler
Browse files Browse the repository at this point in the history
this is necessary to restore the capabilities before the commit valyala@c7576cc
and to allow further functionality to be docked from the outside which is not affected by setting the root dir afterwards

gofiber/fiber#1882 (comment)
  • Loading branch information
ReneWerner87 committed May 12, 2022
1 parent 9961079 commit 0b7a185
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 10 deletions.
22 changes: 13 additions & 9 deletions fs.go
Expand Up @@ -128,6 +128,7 @@ var (
rootFSOnce sync.Once
rootFS = &FS{
Root: "",
AllowEmptyRoot: true,
GenerateIndexPages: true,
Compress: true,
CompressBrotli: true,
Expand Down Expand Up @@ -229,6 +230,12 @@ type FS struct {
// Path to the root directory to serve files from.
Root string

// Empty root specifications are always filled with the absolute path which exists in the current execution location of the application
// with this setting you can prevent this, for example if you want to handle absolute and relative paths with the requestUri
//
// By default the setting is false
AllowEmptyRoot bool

// List of index file names to try opening during directory access.
//
// For example:
Expand Down Expand Up @@ -384,16 +391,13 @@ func (fs *FS) NewRequestHandler() RequestHandler {
func (fs *FS) initRequestHandler() {
root := fs.Root

// rootFS' handleRequest will do special treatment of absolute and relative paths
if fs != rootFS {
// serve files from the current working directory if root is empty
if len(root) == 0 || !filepath.IsAbs(root) {
path, err := os.Getwd()
if err != nil {
path = "."
}
root = path + "/" + root
// serve files from the current working directory if root is empty
if (!fs.AllowEmptyRoot && len(root) == 0) || (len(root) > 0 && !filepath.IsAbs(root)) {
path, err := os.Getwd()
if err != nil {
path = "."
}
root = path + "/" + root
// convert the root directory slashes to the native format
root = filepath.FromSlash(root)
}
Expand Down
1 change: 0 additions & 1 deletion go.sum
Expand Up @@ -19,7 +19,6 @@ golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9 h1:nhht2DYV/Sn3qOayu8lM+cU1i
golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
Expand Down

0 comments on commit 0b7a185

Please sign in to comment.