When I deploy a new version of my Angular app, the old version still persist. Only, the workaround which is fixing is a "hard" refresh on the browser. (This is not an acceptable solution).
I am using Yeoman (generator-angular) for my project. I looked at the Gruntfile.js
and see that it executes a task that renames everything during build including images, js, css. Only file that is not being renamed is index.html
. What can I do to index.html
so that browser will load this file instead of using the cached version?
You can modify in your server config to tell browsers to not cache by setting Cache
and Expires
header for response. I'm giving you an example of Nginx:
location / {
index index.html;
expires -1;
add_header Pragma "no-cache";
add_header Cache-Control "no-store";
}
Here we are responding index.html
with headers that will prevent browsers from caching the index.html
and the browsers will always get the fresh copy. Now, Grunt is already renaming the JS and CSS files based on the content then it will be refreshed automatically.
Of course, the above example is for Nginx
configuration. You can achieve it for your web server.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With