我使用JShrink和自定义函数将8个未压缩的JavaScript文件合并到一个压缩(缩小)的文件中,如下所示:
<?php
// Filename: js.php
header('Content-type: text/javascript');
require_once '../JShrink.php';
function concatenateFiles($files)
{
$buffer = '';
foreach($files as $file) {
$buffer .= file_get_contents(__DIR__ . '/' . $file);
}
return $buffer;
}
$js = concatenateFiles([
'core.min.js',
'promise.js',
'welcome.js',
'imagesloaded.js',
'cropper.js',
'translate.js',
'custom.js',
'masonry.js',
]);
$output = \JShrink\Minifier::minify($js);
echo $output;
然后我在我的索引页面页脚中调用这个php文件:
<script type="text/javascript" src="<? echo $url ?>/js/js.php"></script>
它没有被缓存。
我每天修改我的JS代码,我不喜欢手动组合它们,但我还需要一种方法来缓存回调的JS代码,只需要代码而不是服务器上的所有php文件。
我该怎么做?缓存清除过程如何?
提前致谢。
答案 0 :(得分:1)
理论上,您需要使用具有适当过期的标题(&#34; ...&#34;)。在实践中,这不能正常工作。你可以用自己的生活谷歌搜索&#34; Cache-Control&#34;和&#34;到期:&#34;并且你找到的都不会起作用。所以我建议你阅读:
ETag是告诉浏览器何时资源发生变化的现代解决方案。
答案 1 :(得分:0)
如果缓存文件不存在或者任何文件修改时间戳晚于缓存,则渲染它,然后将其安全到缓存,然后回显缓存或渲染结果。