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

Что значит '?' делать в Css ссылку?

Я просматривал html моего любимого сайта... гм... и я видел это в разметке:

<link href="/Content/all.min.css?d=20090107" rel="stylesheet" type="text/css" />

что делает?? d = 20090107? Я предполагаю, что это какая-то дата, но я не уверен, почему она находится на пути к файлу. Любые идеи?

4b9b3361

Ответ 1

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

Веб-сервер игнорирует параметр и обычно служит /Content/all.min.css

Примечание. Несмотря на то, что CSS динамически генерируется, это распространенная идиома для обеспечения перезагрузки, и, учитывая данный параметр, это дата, кажется вполне вероятной.


Изменить: Подкаст 38 упомянул об этом...

Мы использовали Expires или Заголовок Cache-Control, поскольку мы запущен. Это экономит браузер при посещении редко изменение элементов, таких как изображения, javascript или css. Недостатком является что, когда вы действительно меняете эти файлы, вы должны помнить измените имена файлов. Часть нашей процесс сборки теперь "тегирует" эти файлы с номером версии, чтобы мы больше не не забудьте сделать это вручную.

Ответ 2

Он "очищает кеш" каждый раз, когда стиль обновляется. Я бы предположил, что тот, кто несет ответственность за эти стили, увеличивает его каждый раз, когда происходит изменение. Это потому, что браузер видит другой URL-адрес в поле стиля, поэтому он будет захватывать последнюю версию, даже если она технически находится на том же месте на сервере.

Как хорошо сказано в комментариях, css файлы часто имеют срок их действия в будущем, этот метод является хорошим побочным эффектом для кэширования связанных заголовков.

Довольно полезный трюк.

Ответ 3

Это означает, что браузер думает, что это новый файл, каждый раз обновляет его кеш.

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