Файл CSS не обновляется при развертывании (Google AppEngine)
Я нажал новую версию своего веб-сайта, но теперь CSS и статические изображения не развертываются должным образом.
Вот перепутанная страница: http://www.gaiagps.com
Appengine показывает последнюю версию как правильную: http://1.latest.gaiagps.appspot.com/
Любая помощь?
Ответы
Ответ 1
Я видел это раньше в App Engine, даже если вы используете параметры запроса кэша, такие как /stylesheets/default.css?{{ App.Version }}
.
Здесь моя (неподтвержденная) теория:
- Вы нажимаете новую версию, развертывая или меняя новую версию на
default
.
- Пока это обновление распространяется на все экземпляры GAE, запускающие ваше приложение...
- ... кто-то попадает на ваш сайт.
- Запрос на статический ресурс
default.css{{ App.Version }}
отправляется в CDN Google, который еще не имеет его.
- Google CDN запрашивает GAE для ресурса до того, как распространение со второго шага выполняется для всех экземпляров.
- Если вам не повезло, GAE обслуживает ресурс из экземпляра, запускающего старую версию...
- ... который теперь кэшируется в Google CDN как авторитетная "новая" версия.
Когда это (если это произойдет), я могу подтвердить, что никакая работа с браузером, работающая с кэшем, не поможет. Серверы CDN Google содержат неправильную версию.
Исправить: Единственное, что я нашел, чтобы исправить это, - это развернуть другую версию. Вы не рискуете повторить это снова (если вы не внесли каких-либо изменений в CSS с момента гонки), потому что даже если условие гонки происходит, возможно, ваше первое обновление выполняется к моменту развертывания вашего второго, поэтому все экземпляры будут обслуживать правильную версию независимо от того, что.
Ответ 2
Следующее - это то, что сработало для меня.
-
Подайте свой css файл из статического домена. Это автоматически создается GAE.
//статичная. {Ваш-приложение-ID}.appspot.com/{CSS файл путь}
-
Разверните приложение. На этом этапе ваше приложение будет разбито.
-
изменить версию файла css
//статичные. {Вашего-приложение-ID}.appspot.com/{CSS файл путь}? V = {версия-Name}
-
развернуть снова.
Каждый раз, когда вы меняете файл css. вам придется повторять 2,3 и 4.
Ответ 3
Ваша ссылка выглядит хорошо для меня, если я не пропущу что-то.
Возможно, вы сохранили свой старый CSS и не получили новый CSS после его обновления. Попробуйте очистить кеш браузера и посмотреть, работает ли это.
Переход на 1.latest загружает новый CSS, поскольку он не находится в вашем кеше, поэтому он кажется вам правильным.
Ответ 4
У меня тоже была эта проблема. Я использовал колбу с GAE, поэтому у меня не было статического обработчика в моем app.yaml
. Когда я добавил его, развертывание работает. Попробуйте добавить что-то вроде этого
handlers:
- url: /static
static_dir: static
на ваш app.yaml
и снова разверните. Это сработало для меня. По-видимому, Google пытается оптимизировать, не обновляя файлы, которые, по его мнению, пользователи не видят.
Ответ 5
Попробуйте очистить кеш в своем браузере. Имел ту же самую проблему и исправил ее, просто очистив кеш.
Ответ 6
Вот что сработало для меня:
Во-первых, я изменил версию на app.yaml.
Затем выполните следующие шаги
Перейдите в консоль → Нажмите на свой проект.
В боковом меню нажмите Вычисление → Версии:
Там будут все версии, а какая версия по умолчанию. Шахта была установлена в более старой версии.
Отметьте новую версию.
Для меня работали. Любые проблемы?