Nichtübereinstimmung des HTTP-FileServer-MIME-Typs
Bei der Verwendung von http.FileServer zur Bereitstellung von Dateien mit bestimmten MIME-Typen tritt ein häufiges Problem auf, wenn der Server antwortet mit einem falschen MIME-Typ, z. B. „text/html“ anstelle des gewünschten „audio/mpeg“ für MP3 Dateien.
Um dieses Problem zu lösen, müssen wir uns mit der Implementierung von http.FileServer befassen. Diese Middleware ruft einfach eine Datei aus dem angegebenen Verzeichnis ab und gibt sie als HTTP-Antwort zurück. Es hat jedoch keine explizite Kontrolle über den der Antwort zugewiesenen MIME-Typ.
Die Lösung liegt in der Änderung des Anforderungsverarbeitungsmusters für http.FileServer. Indem wir dem Muster einen abschließenden Schrägstrich hinzufügen, etwa so:
http.Handle("/media/", http.StripPrefix("/media/", fs))
Wir erstellen im Wesentlichen einen verwurzelten Teilbaum-Handler. Laut der Dokumentation von net/http.ServeMux haben längere Muster Vorrang vor kürzeren. Durch das Hinzufügen des abschließenden Schrägstrichs stellen wir sicher, dass dieser Handler speziell für Anfragen innerhalb des Teilbaums „/media/“ aufgerufen wird. Dadurch können wir die MP3-Dateien mit ihrem korrekten MIME-Typ bereitstellen.
Das obige ist der detaillierte Inhalt vonWie kann ich falsche MIME-Typ-Antworten des HTTP-FileServers beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!