angular - 如何在 Nginx 服务器上强制刷新旧版本的 Angular 应用程序?
问题描述
我有一个 Angular 应用程序已经投入生产,但我一直在添加新功能,这些新功能会使旧版本过时。用户正在使用的当前版本具有手动更新方式(通过弹出窗口),但我知道有些用户不会更新或刷新页面。
我的应用程序位于具有以下设置的 Nginx 配置服务器下:
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
server {
listen 80;
server_name mysite.com www.mysite.com;
return 301 https://$server_name$request_uri;
}
server {
listen 8000;
server_name mysite.com www.mysite.com;
root /var/www/mysite-front/dist;
index index.html index.htm;
location / {
expires -1;
try_files $uri $uri/ /index.html;
}
location ~ \.(html)$ {
expires -1;
add_header Pragma "no-cache";
add_header Cache-Control "no-store";
add_header strict-transport-security "max-age=31536000";
add_header X-Frame-Options "SAMEORIGIN";
try_files $uri $uri/ /index.html;
}
location ~ \.(css|htc|less|js|js2|js3|js4)$ {
expires 31536000s;
add_header Pragma "public";
add_header Cache-Control "max-age=31536000, public";
try_files $uri $uri/ /index.html;
}
location ~ /\.ht {
deny all;
}
# add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload';
}
我的问题是,无论我是否上传新版本,不更新或刷新的用户都会继续看到旧版本。即使我清除了服务器上的 dist 文件夹,用户也可以继续使用旧版本的应用程序。
我该怎么做才能让老用户直接从服务器获取应用程序,而不是依赖他们拥有的任何缓存版本?
解决方案
推荐阅读
- vbscript - 如何使用 qtp 数据表方法将日期附加到 xls 文件?
- angular - 角材料垫-自动完成打开面板
- spring-boot - 如何在测试之间关闭应用程序上下文
- php - session(['key' => 'value']) 和 session()->get('key') 返回 null
- java - 如何从ResultSet java sql包中获取所有剩余的行
- php - HTML PHP:按表中最近的时间戳列出行
- spring - 春季启动服务器错误
- sql - 加密sql中的单个列
- powershell - AdUser 到域 POWERSHELL
- oracle - 安装后如何确定apex的虚拟目录