每次Gulp更改CSS或JS文件时,它都会保持输出文件名与以前相同。浏览器如何知道该文件已被更改并需要重新加载css和JS文件?
要解决此问题,我决定使用以下Gulp插件:
https://github.com/sindresorhus/gulp-rev
通过将内容哈希附加到文件名
来重命名资产文件unicorn.css => unicorn-098f6bcd.css
有没有办法动态地使用php包含资源文件?每次添加新内容时,资产名称都会更改。
答案 0 :(得分:0)
改为重命名文件,你可以用它发送指纹。如果文件更改,则上次修改也会更改。所以你可以轻松地使用文件的最后修改作为指纹:
public function putStyle($fileName)
{
$fp = filemtime($fileName); // finger print by file last modified
$fileName .= '?' . $fp;
echo '<link rel="stylesheet" href="' . $fileName . '"/>';
}
答案 1 :(得分:0)
我找到了一种动态包含文件的方法。它的速度快(大约需要1.5毫秒)并且工作正常。
PHP有一个用于搜索文件的本机函数(glob)。根据PHP文档“ glob()函数根据libc glob()函数使用的规则搜索匹配模式的所有路径名,这类似于常见shell使用的规则。”< / p>
<强>水珠()强>
// css path would be the full physical path of your css directory
$cssPath = '/css/*.css';
$stylesheets = glob($cssPath, GLOB_NOSORT);
// link all stylesheets
<?php foreach($stylesheets as $stylesheet): ?>
<link rel="stylesheet" href="css/<?=basename($stylesheet)?>">
<?php endforeach; ?>