У меня есть система аннулирования кеша, поэтому мне нужно настроить кеш для css | js, чтобы он никогда не истекал.
Я пробовал это
location ~* \.(js|css)$ { # |png|jpg|jpeg|gif|ico
expires max;
#log_not_found off; # what's this for?
}
И вот что я вижу в firebug:
Итак, как вы можете видеть, запросы все еще отправляются, хотя они получают только ответ «не изменен». Но я хочу полностью их избежать, возможно ли это?
Кроме того, я читал, что срок действия более 1 года считается или будет считаться недействительным в стандарте. Это правда?
редактировать
Позвольте мне завершить ответ @ DisgruntledGoat:
Вы перезагружаете страницу, чтобы проверить это? Когда вы это делаете, браузеры обычно запрашивают каждый файл снова (по крайней мере, Chrome). Если вместо этого вы нажимаете ссылки на разные страницы своего сайта, браузер должен просто использовать кеш, а не повторно запрашивать файлы.
Кроме того, согласно спецификации Expires
Директива может иметь дату только на один год в будущем, поэтому 2037 является недопустимым значением. Сказав это, браузеры обычно прекрасно принимают значения далекого будущего.
Это невозможно сделать иначе, чем вы попробуете. Как обрабатывается кэш, зависит от браузера клиента. Кэш настроек не должен превышать на один год больше даты изменения Источник.
Nginx очень эффективен, если у вас <1000000 посетителей каждый день, вам действительно не нужно беспокоиться о запросах, отправленных в Nginx. Если речь идет о пропускной способности, если браузер получает ответ 304, он по-прежнему использует данные из своего кеша, поэтому пропускная способность не теряется.