我有一个设置,其中nginx提供所有静态内容(CSS / JS)。 我们的问题是,当我们更新静态内容时,浏览器不一定立即更新它们,导致我们推送新版本时出现问题。
我想有一个nginx插件,它基本上取代了对CSS / JS的所有调用,并广告了版本号,如下所示:
在:
<link rel="stylesheet" type="text/css" href="/media/css/style.css" />
后:
<link rel="stylesheet" type="text/css" href="/media/css/style.css?3428432" />
并根据style.css文件本身的最新更改日期自动执行此操作。所以我不必更新HTML。 有插件吗?我知道Googles mod_pagespeed在他们的apache2模块中做了类似的事情..但我找不到nginx的任何人。
答案 0 :(得分:4)
通常,这是在应用程序本身完成的,而不是在Web服务器级别完成的。网络服务器通常只知道要提供什么,从何处。 PHP和Rails都能够执行您在上面描述的内容,但同样,这也是应用程序本身的内容。
据我所知,this article是一个很好的循序渐进,与你所要求的非常相似,但同样,这涉及到应用程序的变化。如果您在Google上搜索“nginx css版本控制”,您会找到其他讨论nginx配置的文章,但我所看到的所有文章都涉及应用程序更改。
答案 1 :(得分:0)
将以下内容添加到nginx应该只通过文件名并忽略版本信息来提供文件。
location ~ ^/(assets/js|assets/css) {
root path/to/the/static/files;
access_log off;
expires max;
try_files $uri $1;
}