Home > Article > Backend Development > Why Does My Go FileServer Return the Wrong Content-Type MIME Type?
Introduction
FileServer is a powerful Go package for serving static files. However, you may encounter issues where the response returns an incorrect "Content-Type" mime type, such as "text/html" instead of "audio/mpeg." This can be a problem if you're serving specific file types that require specific mime types.
Answer
To resolve this issue, it is not necessary to override the mime type. Instead, the problem lies in how the FileServer is configured. Specifically, the pattern used to handle requests may not be correct.
Solution
The solution is to add a trailing slash to the pattern used to handle requests. For example, instead of:
http.Handle("/media", http.StripPrefix("/media", fs))
You should use:
http.Handle("/media/", http.StripPrefix("/media/", fs))
Explanation
The trailing slash indicates that the pattern represents a rooted subtree rather than a fixed path. This means that the FileServer will serve requests for any path within the "/media/" subtree.
Validation
To ensure that the fix works, you can attempt to access the mp3 file again. You should now receive a response with the correct "Content-Type" mime type, "audio/mpeg."
The above is the detailed content of Why Does My Go FileServer Return the Wrong Content-Type MIME Type?. For more information, please follow other related articles on the PHP Chinese website!