Android (5.0.1) Chrome удаляет пробелы и комментарии javascript, есть ли способ остановить это?

В дополнение к тому, что отладка становится практически невозможной, это новое поведение нарушает работу моего веб-сайта, на котором я использую технику javascript heredoc (Javascript heredoc), который зависит от использования комментариев.

Я не уверен, включил ли я это случайно, и это редкое явление, или это новая функция Android. Меня это беспокоит, потому что я использую метод javascript heredoc на нескольких разных сайтах, и такое поведение нарушит работу этих сайтов.

Кто-нибудь еще испытал это?

Есть ли обходной путь, где сервер может остановить это?

Есть ли альтернатива методу javascript heredoc?


person MLU    schedule 31.12.2014    source источник
comment
Это может быть вызвано developer.chrome.com/multidevice/data-compression.   -  person SLaks    schedule 31.12.2014


Ответы (2)


Эта проблема была вызвана сжатием данных Chrome (https://developer.chrome.com/multidevice/data-compression.) Спасибо Slaks за предупреждение, иначе я бы его пропустил.

Как только я его отключил — это в настройках Chrome — Уменьшить использование данных (после «Настройки контента» и до «О Chrome»), мой сайт снова начал работать.

Чтобы исправить это для других пользователей, которые, как и я, даже не знают, что они используют это, я добавил следующий код, который я нашел в двух ссылках ниже:

<FilesMatch "\.(css|js)$">
    <IfModule mod_headers.c>
        Header set Pragma "public"
        Header set Cache-Control "no-transform,public, must-revalidate, proxy-revalidate"
    </IfModule>
    FileETag MTime Size
</FilesMatch>

Важной частью является указание Google «не преобразовывать» javascript через директиву Cache-Control. Я сделал это для обоих файлов .js и .css, хотя в будущем я могу добавить дополнительные типы.

И я добавил headers.load в доступные моды, чтобы в нем были mod_headers.

http://mobiforge.com/design-development/setting-http-headers-advise-transcoding-proxy

Apache -Кэширование: как настроить заголовки ответов в Apache 2 +.

После перезапуска Apache все заработало.

Что касается третьего вопроса, есть ли обходной путь для метода javascript heredoc, у меня действительно нет ответа, но, возможно, этот сценарий свидетельствует о том, что этот метод не без проблем.

person MLU    schedule 31.12.2014

Я технический руководитель прокси-сервера сжатия Google. Наш прокси действительно удаляет комментарии из JS-файлов, что должно быть безопасно, хотя есть некоторые инструменты, которые (на мой взгляд, наоборот :-) полагаются на комментарии JS для работы. Как правило, нет хорошего способа обнаружить это, поэтому мы полагаемся на заголовок Cache-Control: no-transform. Если у вас есть предложения по лучшим способам избежать этого, я был бы признателен.

person mdwelsh    schedule 05.02.2015