Javascript.RU

Отрицание в регулярном выражении

Как и обещал во время перерыва на мастер классах выкладываю решение:

Когда то, кажется после прочтения книги о клиентской оптимизации Николая Мациевского, у меня появилась задача: для устаревших браузеров, не поддерживающих gzip, создать в конфигурационном файле apache сервера правило:

все .css .js файлы, не имеющие в названии определенной части .ABC дополняются этим .ABC

Долго мучился в поисках решения, вспоминая при этом анекдот:

если у вас есть проблема и вы думаете, что ее можно решить через регулярные выражения, значит у вас уже есть две проблемы!

Собственно сам regexp:

((?:(?!\.ABC).)*)

Я его на практике использую так вот:

    RewriteEngine On
# ... тут правило по вырезанию версии файла
    RewriteCond %{HTTP:Accept-encoding} !gzip [OR]
    RewriteCond %{HTTP_USER_AGENT} Konqueror
    RewriteRule ^((?:(?!\.no-gzip).)*)\.(css|js)$ $1.no-gzip.$2 [QSA,L]

# далее ...

    FilesMatch .*\.(js|css)$
        Header set Content-Encoding: gzip
        Header set Cache-control: private
    /FilesMatch

    FilesMatch .*\.no-gzip\.(js|css)$>
        Header unset Content-Encoding
    /FilesMatch

При этом отдельные .css .js файлы для IE 6-, подключаемые через CC, либо файлы очень маленького объема, сжимать которые не выгодно и не эффективно, изначально содержат в названии флаг .no-gzip

Надеюсь вам это пригодится!

P.S. Илья, еще раз спасибо за организацию и проведение мастер классов, ни разу не пожалел, всем советую!

+2

Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
7 + 0 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Другие записи этого автора
Больше записей нет. Прокомментируйте эту запись - может быть, тогда он что-нибудь еще хорошее напишет ;)
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Популярные таги
Последние комментарии
Последние темы на форуме
Forum