Основная проблема в том, что вы не можете просто отправить файл gzip, где браузер ожидает CSS. Само по себе это не работает больше, чем если бы вы вернули JPEG или бутерброд с ветчиной.
Когда содержимое архивируется на лету, ответ несколько отличается - ответ говорит: «Я text / css, но, оказывается, закодирован для передачи gzip». Браузер может понять это.
Некоторые веб-серверы, такие как Apache, будут делать такие вещи для вас, если вы также предоставляете сжатые файлы локально. Но я думаю, что ваш сервер не.
Почему это работает для HTML? Хм, я не знаю, может, вашему браузеру действительно удается это выяснить в данном конкретном случае?
В конечном итоге вы хотите отправить ответ с Content-Type: text / css и Content-Encoding: gzip, чтобы он был правильно распознан.