Рабочие пространства Chrome с отпечатками пальцев

Рабочие пространства Chrome: допустим, я сопоставляю локальные файлы CSS с файлами, которые обслуживает мой локальный http-сервер. Все отлично работает, и я могу изменить файлы в браузере, и после обновления страницы мои изменения сохраняются.

Мы получаем отпечатки пальцев наших активов, чтобы они ссылались через URL, как styles.css?longuniquehash, Отличная практика - таким образом мы можем использовать агрессивное кэширование и быть уверенными в том, что клиент использует самые последние активы.

Тем не менее, это немного негативно сказывается на рабочих пространствах, поскольку сопоставления теряются при обновлении URL. В двух словах: мы наносим на карту styles.css?123 на локальный ресурс, мы меняем его и при обновлении страницы он возвращается как styles.css?234 который должен быть сопоставлен снова.

Мы используем кассету, но проблему можно воспроизвести на любой установке с помощью снятия отпечатков пальцев. Мне не хватает настройки или обходного пути?

2 ответа

Согласно Chromium, поддержка сопоставления URL-адресов с параметрами запроса (т.е. style.css?123) был только частичным вплоть до Chrome 49 - где он был полностью удален.

Если вы не можете вручную удалить параметры из своего кода, временное решение - удалить ?123 параметр из таблицы стилей в инспекторе Chrome после загрузки страницы. Тогда ваше отображение рабочей области и автоматическое обновление должны работать нормально, пока вы снова не загрузите страницу.

Вы можете отметить и следить за этим вопросом здесь: bugs.chromium.org

Я предполагаю, что вы не разрабатываете на своем действующем сервере (и если вы все же остановитесь и начнете разработку на своем локальном компьютере или хотя бы на тестовом сервере), то вы активируете "уничтожение кеша" только в своей действующей среде. У нас всегда есть быстрый способ проверки среды, в которой мы работаем во всех наших проектах, поэтому просто проверьте, прежде чем добавлять запрос "?123". Если вы не можете решить эту проблему в коде, вы также можете добавить это в свой htacces (если вы используете apache)

SetEnvIf Host 'local.domain.com' runenv=local

RewriteCond %{ENV:runenv} ^local$
RewriteCond %{REQUEST_URI} .*\.css
RewriteCond %{QUERY_STRING} !^$
RewriteRule ^(.*)$ /$1? [R=301,L]
Другие вопросы по тегам