Invalidate cache for static files?

Denis Arh denis at arh.cc
Mon Jul 21 19:01:16 MSD 2008


Would it help moving them into a different folder instead of appending  
query string?

Sent from my iPhone

On 21.7.2008, at 16:55, Tit Petric <black at scene-si.org> wrote:

>
>
> Maxim Dounin wrote:
>> Hello!
>>
>> On Mon, Jul 21, 2008 at 01:57:06PM +0100, Phillip B Oldham wrote:
>>
>>> What would be the simplest way to invalidate browser cache of  
>>> static  files served by nginx?
>>>
>>> For instance, we have a website which is in active development. We  
>>> get a  reasonable amount of traffic, but we often get complaints  
>>> when we update  the live files because some browsers are working  
>>> with a mix of fresh  (live) and stale (cached) js/css files. We'd  
>>> like to inform/force  browsers that the file is new and should be  
>>> updated.
>>
>> Just use normal web development practices, e.g. add "?v=<version>"
>> to js/css urls.  Nothing special, nginx is just web server.
> I've tried this before, it is problematic since cache doesn't behave  
> correctly and in some cases browsers or even caching proxies in  
> front of backend servers never cache the resource, because they  
> percieve the link as dynamic.
>
> Having unique urls, like I suggested in the previous email, solves  
> theese problems. Also, you can then set the Expires & Cache-control  
> headers for static content far in the future and encourage browser  
> caching, since you have an effective method of always reloading them  
> without fail. Caches and browsers will keep such objects, while the  
> suggested sollution with the "?v=version" will not be cached on many  
> of them, since they percieve the url as dynamic and always try a  
> reload, ignoring possible Expires & Cache-control headers.
>
> For a small setup, where you don't care about resources, your  
> sollution is mostly fine, but is problematic in the real world with  
> tens of thousands of users.
>
> BR
>





More information about the nginx mailing list