Ich möchte, dass Apache statische Dateien über das Kabel sendet, aber auch, dass Apache sie nicht immer und immer wieder komprimiert. Also dachte ich, wenn es nicht möglich wäre, eine .gz-Datei zu liefern, wenn sie existiert. Diese Einstellung:
Dateistruktur:
static/
|
|--- style.css
|
\--- style.css.gz
Und das Folgende in einem .htaccess:
mod_rewrite Regel:
RewriteCond %{REQUEST_FILENAME}.gz -s
RewriteRule ^(.+) $1.gz [L]
Und diese Einstellung:
AddEncoding x-gzip .gz
Tatsächlich funktioniert dies insofern, als die .gz-Datei anstelle der .css-Datei gesendet wird, wenn die Anforderung an gesendet wird /static/style.css
. Das Problem ist nur, dass die Datei als "application / x-gzip" und nicht als "text / css" geliefert wird. Die Verwendung des T-Flags von mod_rewrite ändert daran nichts. Auch nicht explizit
AddType text/css .css
Hat jemand eine Idee, wie ich das gewünschte Verhalten erreichen könnte? Oder ist es aus irgendeinem Grund unnötig, mit dem ich nicht gerechnet habe?
BEARBEITEN: Es gibt eine zusätzliche Schwierigkeit: Senden der Originaldatei an Clients ohne gzip-Unterstützung. Hat jemand eine Idee, wie das funktionieren könnte?
quelle
Antworten:
Eine Lösung zum Senden der richtigen Version an Browser, die gzip nicht akzeptieren, wäre wie folgt:
Es gibt auch eine andere Möglichkeit, den Typ zu ändern, nämlich:
HTH.
quelle
RewriteCond
passen nur , wenn der Client tut gzip - Codierung akzeptieren.Ah, anscheinend habe ich eine Lösung gefunden: Das T-Flag funktioniert nicht, wenn es auf dieselbe Regel gesetzt ist, aber es funktioniert sicher, wenn Sie eine eigene Regel ausgeben:
Trotzdem würde ich gerne die Lösungen und Meinungen anderer hören.
quelle