Я работаю на большом веб-сайте поиска работы, который использует Amazon / AWS CloudFront.
Я дизайнер рекламы и делаю индивидуальные объявления для некоторых клиентов.
Допустим, я загружаю изображение заголовканазывается test.jpg и отправляет ссылку клиенту на утверждение.Затем клиент запрашивает изменение, поэтому я изменяю test.jpg и перезагружаю его, перезаписывая предыдущую версию (то есть тот же путь к файлу).
Я бы ожидал, что CloudFront заметит, что файл был изменен, иобслуживайте новую версию.
Однако на самом деле происходит то, что старая версия отображается в моем браузере (Chrome) и в браузере клиента.
- Если я нажму, перезагрузите еене показывает новую версию.
- Если я нажму HARD reload, новая версия не отображается.
- Если я загружаю Chrome Developer Tools, щелкните правой кнопкой мыши по перезагрузке и выберите Очистить кэш и Жесткая перезагрузка, она не показывает новую версию.
Единственный способ показать новую версию - это открыть ее в приватном окне или использовать совершенно другой браузер.
ItКажется, не имеет значения, какой браузер используется изначально.Если я начну в Chrome, Firefox или Edge, я буду видеть старый файл test.jpg, пока не воспользуюсь приватным окном или не переключусь на другой браузер.
Лично я могу с этим смириться.Однако клиенты просто не понимают инструкцию «Попробуйте в личном окне».В результате каждую неделю появляются десятки жалоб на то, что я не исправил их объявление.В настоящее время я отправляю скриншоты, чтобы показать, что у меня есть.
Какие настройки (Apache?) Я должен изменить, чтобы CloudFront обслуживал новые версии контента, когда этот контент был изменен?
ДАННЫЕ 1 - заголовки ответа для test.jpg (первая загрузка)
Request URL: https://www.redacted.com/images/test.jpg
Request Method: GET
Status Code: 200 OK
Remote Address: 52.85.70.211:443
Referrer Policy: no-referrer-when-downgrade
Accept-Ranges: bytes
Cache-Control: max-age=3600, public
Connection: keep-alive
Content-Length: 128483
Content-Type: image/jpeg
Date: Tue, 26 Feb 2019 12:39:42 GMT
ETag: "1f5e3-582ba67eea3f0"
Last-Modified: Mon, 25 Feb 2019 16:26:42 GMT
Server: Apache/2.4.6 (CentOS) PHP/7.0.28
Strict-Transport-Security: max-age=86400; includeSubDomains
Via: 1.1 f165ce34daf8c0da182681179e863c24.cloudfront.net (CloudFront)
X-Amz-Cf-Id: ygg0SdiaCM0eGDvXXpbw8AGcGD5u0mMIrItTeh8jgfmvHrI4YgP_lQ==
X-Cache: Miss from cloudfront
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,en-GB;q=0.8
Cache-Control: max-age=0
Connection: keep-alive
Cookie: redacted
Host: www.redacted.com
If-Modified-Since: Mon, 25 Feb 2019 16:26:42 GMT
If-None-Match: "1f5e3-582ba67eea3f0"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36
ДАННЫЕ 2 - заголовки ответа для изменено test.jpg (вторая загрузка)
Request URL: https://www.redacted.com/images/test.jpg
Request Method: GET
Status Code: 304 Not Modified
Remote Address: 52.85.70.192:443
Referrer Policy: no-referrer-when-downgrade
Age: 269
Cache-Control: max-age=3600, public
Connection: keep-alive
Date: Tue, 26 Feb 2019 12:44:11 GMT
ETag: "1f5e3-582ba67eea3f0"
Server: Apache/2.4.6 (CentOS) PHP/7.0.28
Strict-Transport-Security: max-age=86400; includeSubDomains
Via: 1.1 8d6ec6531e86b6b4aca269514f4dbbe1.cloudfront.net (CloudFront)
X-Amz-Cf-Id: ITVX0Q5KEGtZTQj6qpZKX7CJYqfoEZF3ngujC1QFZ34vX9OI-1cubA==
X-Cache: Hit from cloudfront
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,en-GB;q=0.8
Cache-Control: max-age=0
Connection: keep-alive
Cookie: redacted
Host: www.redacted.com
If-Modified-Since: Mon, 25 Feb 2019 16:26:42 GMT
If-None-Match: "1f5e3-582ba67eea3f0"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36