在 nginx 中自动版本控制 CSS/JS

Nik*_*as9 4 versioning nginx auto-versioning

我有一个设置,其中 nginx 提供所有静态内容(CSS/JS)。我们的问题是,当我们更新静态内容时,浏览器不一定会立即更新它们,这会导致我们在推送新版本时出现问题。

我想要一个 nginx 插件,它基本上可以替换对 CSS/JS 的所有调用,并添加一个版本号,如下所示:

前:

<link rel="stylesheet" type="text/css" href="/media/css/style.css" />
Run Code Online (Sandbox Code Playgroud)

后:

<link rel="stylesheet" type="text/css" href="/media/css/style.css?3428432" />
Run Code Online (Sandbox Code Playgroud)

并根据 style.css 文件本身的最新更改日期自动执行此操作。所以我不必更新 HTML。有这个插件吗?我知道谷歌的 mod_pagespeed 在他们的 apache2 模块中做了类似的事情......但我找不到任何人使用 nginx。

CDu*_*Dub 5

通常,这是在应用程序本身中完成的,而不是在网络服务器级别。网络服务器通常只知道服务什么,从哪里服务。PHP 和 Rails 都能够执行您在上面描述的操作,但同样,这在应用程序本身中。

据我所知,这篇文章是一个很好的分步指南,与您所要求的非常相似,但同样,这涉及应用程序更改。如果您在 Google 上搜索“nginx css versioning”,您会发现其他讨论 nginx 配置的文章,但我所查看的所有内容也都涉及应用程序更改。

  • 嗯 prob 真的谢谢。我猜解析所有传出的内容将是一个性能瓶颈。将它构建到应用程序中比 nginx 插件更好。 (2认同)