Компоненты кэшируются в Angular2 — предотвращение кэширования представления

#javascript #caching #angular

#javascript #кэширование #angular

Вопрос:

в Angular 1 включенные элементы автоматически кэшировались в браузере. Популярным обходным путем было добавление версии в качестве строки запроса в data includes.

Как можно предотвратить или контролировать кэширование в Angular2?

т.е. обновление / освобождение представления и отражение изменений при загрузке этой страницы.

Ответ №1:

Если для создания приложения используется webpack, имеется встроенная поддержка для добавления хэша к имени файла, например:

 module.exports = {
    entry: { 'app': './src/main.ts' },
    output: {
        path: root   '/dist',
        filename: '[name].[hash].js',
        chunkFilename: '[id].[hash].bundle.js'
    },
  

Таким образом, каталог dist будет выглядеть примерно так, как показано ниже:

 dist
├── assets                                                                                                                             
├── index.html                                                                                                                         
├── inline.js                                                                                                                          
├── main.800a8a9b422ccd7272ce.bundle.js                                                                                                
└── styles.f8225afc6bf827fa5376.bundle.js
  

Если вы используете angular-cli для создания и сборки вашего проекта angular2, вышеуказанное автоматически обрабатывается для вас.