首页 > 解决方案 > 如何在 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 文件夹,用户也可以继续使用旧版本的应用程序。

我该怎么做才能让老用户直接从服务器获取应用程序,而不是依赖他们拥有的任何缓存版本?

标签: angularnginx

解决方案


推荐阅读