Nginx,关闭特定文件的缓存

时间:2015-04-06 06:33:58

标签: caching nginx

location /static {
    alias /home/ubuntu/Documents/zibann/momsite/momsite/static; # your Django project's static files - amend as required
    if ($uri ~* ".*config.js") {
       expires off;
    }

    if ($uri ~* ".*\.(js|css|png|jpg|jpeg|gif|swf|svg)" ) {
       access_log off;
       expires 365d;
       add_header Cache-Control public;
    }

}

希望config.js不会被缓存,但确实如此 如何从缓存中排除一个文件?

2 个答案:

答案 0 :(得分:18)

为config.js创建一个单独的位置块,高于其他位置块。

location ~ config\.js {
    alias xyz;
    expires off;
}

location static etc

答案 1 :(得分:0)

我尝试了上面和其他页面中的所有示例。唯一对我有用的就是这个。我的文件是一个 PHP 文件,我必须创建配置文件最后一部分的完整副本。也许替换 location ~ config.js 对你也有用。

location ~ player\.php {
        set $no_cache 1;
            fastcgi_index  index.php;
            include        fastcgi_params;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;   
            if (-f $request_filename) {
                # Only throw it at PHP-FPM if the file exists (prevents some PHP exploits)
                fastcgi_pass   unix:/tmp/run/php7-fpm.sock;
                #fastcgi_read_timeout 3600;
            }         
}