Подтвердить что ты не робот

Кто-нибудь знает какие-либо проблемы, используя запрос в файле CSS?

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

Существует логика сохранения старой версии для поддержки кеша Google, archive.com и т.д., но она также была бы намного более чистой в нашей системе, если бы я просто редактировал файл и добавлял строку запроса к изображению CSS звоните:

#element-id { background-image: url('my-sprite.png?version1'); }

Мой вопрос: кто-нибудь знает какие-либо проблемы с браузером с использованием кеша строки запроса в файле CSS?

Мое подозрение заключается в том, что браузеры обрабатывают запросы изображения css одинаково, независимо от того, являются ли они из файлов CSS или через HTML, поэтому, пока мой сервер правильно выражает информацию заголовка, я должен быть в порядке.

4b9b3361

Ответ 1

Если браузер не будет серьезно нарушен, не должно быть ничего плохого. Предположим, вы хотели использовать динамический файл, например url('/layout.php?section=1') или что-то еще. Строки запроса требуются там, поэтому, если браузер не работает, это будет сильно нарушено.

Ответ 2

tl; dr Использование параметров запроса не является 100% -ным решением.

При использовании конвейера активов существуют две проблемы:

  • Убедитесь, что ваши ресурсы кэшируются, когда вы хотите, чтобы они
  • Нарушение кэша при просмотре файла.

Параметр строки запроса иногда приводит к тому, что сети или браузеры не кэшируют ваш ресурс вообще. Что еще, как отмечает г-н Ирланд, "подход строки запроса не является надежным для клиентов, стоящих за Squid Proxy Server", поэтому он может оказаться ненадежным для перебора кеша. В принципе, вы не хотите полагаться на конфигурацию других людей.

Несколько ссылок:

  • Rails Guides: Asset Pipeline - Rails Asset Pipeline построен на Sprockets проект, который был сосредоточен на решении этих проблем в течение нескольких лет. Они конкретно выделяют жирным шрифтом не менее: "Не все кеши будут надежно кэшировать контент, где имя файла отличается только параметрами запроса".

  • Стив Сулдерс Статья об обновлении активов - Стив Судерс - это что-то вроде гуру веб-производительности и автора книги О'Рейли "Высокопроизводительные веб-сайты" написали эту статью, на которую ссылаются в руководствах Rails, которые предлагают использовать обновление имен файлов, чтобы избежать проблем с людьми за прокси-серверами.

  • Предложение HTML-Boilerplate - Проект Boilerplate HTML5, поддерживаемый почтенным Полом Ирландцем и Николасом Галлахером, использует .htaccess для создания по существу фильтр, чтобы сделать filename revving. Они специально предлагают использовать возобновление имени файла вместо версий строки запроса.

Ответ 3

Единственная проблема, с которой вы можете столкнуться, - файлы css, как правило, кэшируются больше, чем вы, вероятно, захотите. Если вывод my-sprite.png?version1 будет меняться часто, его лучше разместить на самой странице.