大多数人都知道,当您启用缓存时,很难看到您对文件所做的更改。例如,您的样式表不会反映您对其所做的更改。一个解决方案是附加一个“版本号”,如下所示:
<link rel="stylesheet" href="css/styles.css?v=2">
Run Code Online (Sandbox Code Playgroud)
但是,总是手动设置此值非常麻烦。我想出的一个解决方案是让 PHP 在每个缓存之前生成一个唯一值。最直接的方法是根据日期创建一个数字。更具体地说,我会考虑上次更新 PHP 文件的时间。
<link rel="stylesheet" href='css/styles.css?v=<?php echo date("ymd-Gi", getlastmod()) ?>'>
Run Code Online (Sandbox Code Playgroud)
这仍然需要我在每次保存 CSS 文件时保存 PHP 文件,但我认为在每种情况下都比手动设置版本号容易得多。
我想知道 PHP 中是否有更简单的方法来做到这一点。显然,最好的方法是检查样式表的最后修改时间并基于此构建版本号。那可能吗?
而不是getlastmod(), 检查 PHP 脚本的修改日期,您可以使用filemtime($css_filename)( php.net 上的文档)来获取 css 文件的最后修改,。
例如,这将是
<link rel="stylesheet" href='css/styles.css?v=<?php echo date("ymd-Gi", filemtime("css/styles.css")) ?>'>
Run Code Online (Sandbox Code Playgroud)
假设浏览器的相对路径对应于您服务器上的相对路径(如果不是,则更改为内部位置)。