Почему сжатие ASP.NET gzip повреждает CSS?
-
09-06-2019 - |
Вопрос
У меня есть приложение веб-форм ASP.NET (3.5 SP1), над которым я работаю, и пытаюсь включить gzip fpr HTML и CSS, которые идут по конвейеру.я использую эта реализация (и попробовал несколько других, которые подключаются к Application_BeginRequest), и, похоже, он повреждает внешний файл CSS, который используют страницы, но периодически... внезапно все стили исчезают при обновлении страницы, оставайтесь в таком состоянии некоторое время, а затем внезапно начать снова работать.
И IE7, и FF3 демонстрируют такое поведение.При просмотре CSS с помощью панели инструментов веб-разработчика выдается тарабарщина.Заголовок управления кэшем считается «частным», но я недостаточно знаю, чтобы понять, является ли это способствующим фактором или нет.
Кроме того, это работает на сервере разработки ASP.NET.Возможно, с IIS все было бы в порядке, но я разрабатываю на XP, и это будет IIS5.
Решение
Повреждаются только файлы CSS?Файлы JS (или любые другие статические текстовые файлы) проходят нормально?
Также можете ли вы продублировать поведение, если перейдете непосредственно к файлу CSS?
Я включил сжатие только на IIS сервера Windows 2003, используя этот подход:
- IIS → Веб-сайты → Свойства → вкладка Служба, установите оба флажка.
- IIS → Расширения веб-служб → Щелкните правой кнопкой мыши, выберите Добавить новый.
Name Http Compression Required Files %systemroot%\system32\inetsrv\gzip.dll
- IIS → Щелкните правой кнопкой мыши верхний узел, Службы IIS, установите флажок Включить прямое редактирование метабазы
- Резервное копирование и редактирование
%systemroot%\system32\inetsrv\MetaBase.xml
- Находить
Location ="/LM/W3SVC/Filters/Compression/gzip"
- Добавлять
png
,css
,js
и любые другие расширения статических файлов дляHcFileExtensions
- Добавлять
aspx
и любые другие исполняемые расширения дляHcScriptFileExtensions
- Сохранять
- Добавлять
- Находить
- Перезапустите IIS (запустите
iisreset
)
Если у вас есть сервер Windows 2003/2008, вы можете попробовать этот подход.
Другие советы
Если вы будете выполнять развертывание в IIS 6 или IIS 7, просто используйте встроенное сжатие IIS.Мы используем его на рабочих сайтах для безошибочного сжатия HTML, CSS и JavaScript.Он также кэширует сжатую версию на сервере, поэтому сжатие выполняется только один раз.