Отключить кеширование для приложения ExtJs
У нас есть приложение ExtJS 5.01, созданное с помощью Sencha cmd 5.0.1.231.
Проблема, с которой мы сталкиваемся, заключается в том, что браузеры, похоже, кэшируют старую версию нашего приложения. Просматривая сетевой трафик в chrome, когда наше приложение обслуживается, я вижу, что к файлам app.js, app.css все добавлены?_Dc={timestamp}. Теперь это говорит мне о том, что каждый раз, когда выходит новая версия моего приложения (которая обновляет эту метку времени), браузеры должны получать новую версию. Но кажется, что иногда все еще старая версия обслуживается.
Есть ли что-то еще, что мне нужно сделать кэш бюст?
Спасибо
2 ответа
Я не понимаю, почему "иногда" браузер кэширует ваши файлы, даже если по умолчанию кэширование отключено. Я даже заставляю фреймворк по возможности использовать кеш, помещая этот код в мой app.js
:
Ext.Loader.setConfig({
enabled: true,
disableCaching: false
});
В процессе разработки я открываю свой DevTools и устанавливаю Disable cache (while DevTools is open)
, Это не позволит Chrome кэшировать файлы.
Но может быть, что в вашем app.json
Вы заставляете "кэшировать" в локальном хранилище, устанавливая "update"
или же "appcache"
, Проверьте ваше localstorage и ваш app.json для проверки.
Установите полное значение свойства update для app.js в app.json:
{
// Path to file. If the file is local this must be a relative path from this app.json file.
"path": "app.js",
"bundle": true, /* Indicates that all class dependencies are concatenated into this file when build */
// If 'update' not specified, this file will only be loaded once, and cached inside
// localStorage until this value is changed. You can specify:
// - "delta" to enable over-the-air delta update for this file
// - "full" means full update will be made when this file changes
"update": "full"
}
Отключите кэш в extjs, чтобы браузер получал данные с сервера. Для этого добавьте следующий файл app.json.
"production": {
"cache": {
"enable": false
}
}
"css": [
{
// this entry uses an ant variable that is the calculated
// value of the generated output css file for the app,
// defined in .sencha/app/defaults.properties
"path": "${build.out.css.path}",
"bundle": true,
"update": "full"
}
],