我正在开发一个PHP站点,它提供来自cookie免费域的静态内容(感谢SO博客!),这个域提供高缓存的内容,其中包括我无法更改内容(JS,CSS和图像) )而不会使该缓存失效.目前我通过将?revision(例如style.css?19)附加到静态URL的末尾来执行此操作,目前我手动执行此操作,这显然远非方便.
推荐的方法是什么?我正在使用Subversion,根据我的理解,我可以使用各种工具来获取修订版号 - 但是我将如何将其转换为PHP(在每次加载页面时运行它似乎不是很明智?).我猜我应该最有可能使用某种构建系统.
任何建议将不胜感激.
谢谢
SVN 关键字替换可能是解决方案。您可以这样使用它:首先将以下代码添加到您的 PHP 代码中,靠近您要使用该版本的位置的位置。像这样:
$svn_version = '$Revision$'; // remember to use single quotes!
Run Code Online (Sandbox Code Playgroud)
现在提交该文件。然后重新打开它。请注意,上面的行现在已更改为如下所示:
$svn_version = '$Revision: 66232 $';
Run Code Online (Sandbox Code Playgroud)
SVN 识别出关键字标签并将其替换为修订号。从现在起,每次您提交该文件时,此标签都将使用最新版本号进行更新,当您签出或导出时,它还将包含版本号。
现在,您只需进行一些字符串操作即可从该字符串中获取该数字。我相信你自己能弄清楚。
当然,当您更新实际的 css/js 文件而不接触 PHP 时,这是行不通的。这并不容易解决。每次更改 CSS/JS 时,您都可以更改 PHP。或者是的,您可以选择一些构建系统。
不管怎样,我希望你能从中得到一些想法。