我正在开发一个 PHP 站点,该站点提供来自无 cookie 域的静态内容(感谢 SO Blog!),该域提供具有高缓存的内容,这意味着我无法更改内容(JS, CSS 和图像)而不会使该缓存失效。目前我通过将 ?revision(例如 style.css?19)附加到静态 URL 的末尾来执行此操作,目前我正在手动执行此操作,这显然很不方便。
推荐的完成方法是什么?我正在使用 Subversion,根据我的理解,我可以使用各种工具来获取修订号——但我将如何将其导入 PHP(在每次加载页面时都运行它似乎不是很明智?)。我猜我很可能应该使用某种构建系统。
如有任何建议,我们将不胜感激。
谢谢
最佳答案
SVN keyword substitution可能是解决方案。您可以这样使用它:首先将以下代码添加到您的 PHP 代码中,靠近您要使用该版本的地方。像这样:
$svn_version = '$Revision$'; // remember to use single quotes!
现在提交那个文件。然后重新打开它。观察上面的行现在看起来像这样:
$svn_version = '$Revision: 66232 $';
SVN 识别关键字标签并将其替换为修订号。从现在起,每次您提交该文件时,此标签都会更新为最新版本号,它还会在您进行 check out 或导出时包含版本号。
现在,您只需执行一些字符串操作即可从该字符串中获取该数字。我相信您可以自己解决这个问题。
当然,当您在不接触 PHP 的情况下更新实际的 css/js 文件时,这是行不通的。而这不能轻易解决。每次更改 CSS/JS 时都可以更改 PHP。或者是的,你可以选择一些构建系统。
无论如何,我希望你能从中得到一些想法。
关于php - 自动版本控制静态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1556452/