Файлы CSS не обновляются в Cloudfront
Возникла проблема с моим сайтом, на котором не отображаются обновленные файлы CSS.
В прошлый раз, когда у меня возникла эта проблема, я в итоге стер свою корзину S3 и дистрибутив CloudFront, и заново создал всю корзину и дистрибутив с новыми именами. Теперь проблема повторяется. Всякий раз, когда я делаю изменения в файле CSS сайта, файлы в CloudFront не обновляются. Если я ввожу путь к файлу вручную, я вижу, что файл CSS обновлен в хранилище S3, но не в конце CloudFront.
Таким образом, файл из S3 не синхронизируется на CloudFront. Любая помощь приветствуется. Прямо сейчас единственный способ, которым я могу заставить сайт выглядеть правильно, это отключить CDN/CloudFront.
Я использую Wordpress 2.9 с плагином W3 Total Cache. Я не думаю, что проблема заключается в плагине Wordpress и Total Cache, поскольку они выполнили свою работу по загрузке обновленного файла CSS в хранилище S3.
Я пытался ждать около 24 часов, возможно, это где-то проблема с кешем, но, видимо, нет.
Благодарю.
1 ответ
Если у кого-то есть такая же проблема, вот как ее решить.
Вот как сейчас работает мой сайт:
Веб-хостинг Pair.com -> Amazon S3 -> Amazon CloudFront (CDN)
Установка Wordpress находится на хостинге Pair.com. Когда я внесу изменение, плагин W3TC обновит файл на сервере S3. В противном случае вы также можете загрузить файл вручную на сервер S3 с помощью веб-консоли Amazon Web Services или сторонних программ (я использую S3 Organizer). Проблема в том, что когда дело доходит до обновления того же файла в CloudFront. Не существует ручного способа сделать это, и CloudFront обновляется только каждые 24 часа.
Что вы можете сделать, это отправить запрос на аннулирование в CloudFront. После того, как запрос о признании недействительным принят, файл новой версии будет получен с S3, и проблема решена.
Самый простой способ сделать аннулирование - использовать сторонние S3 исследователи. На данный момент только Bucket Explorer и CloudBerry имеют эту функцию. Если вы хотите сделать это без помощи этих программ, вот документ на Amazon.com, который научит вас, как это сделать: http://docs.amazonwebservices.com/AmazonCloudFront/latest/APIReference/Actions_Invalidations.html
Крейг @AWS сказал, что они работают над внедрением команды Invalidation в веб-консоль AWS, но не имеют точной даты, когда функция будет доступна.