Fix error in createStaticHandler when handling directories and index.html #4073
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
My front-end project files and example code are as follows. I want to embed static files into the binary package
However, I encountered a problem: the conflict between Gin's StaticFS and http/fs. This conflict causes the static file directory to be inaccessible. The phenomenon is as follows:
In gin-gonic/[email protected]/routergroup.go, the createStaticHandler function has logic to read files to detect whether they exist. However, in sdk/go1.21.1/src/net/http/fs.go, the createStaticHandler function not only has this logic but also checks if the file is a directory, and if so, it defaults to reading the index.html file inside the directory.
Due to the simplicity of the createStaticHandler function in Gin, the logic in fs.createStaticHandler is being prematurely terminated. I suggest removing the createStaticHandler function from Gin or rewriting it to mimic the behavior of fs.createStaticHandler. The problematic code is as follows: