缓存PHP生成的动态JavaScript

缓存PHP生成的动态JavaScript,php,caching,cross-browser,minify,Php,Caching,Cross Browser,Minify,我使用自定义函数将8个未压缩的JavaScript文件组合成一个压缩的小型文件,如下所示: <?php // Filename: js.php header('Content-type: text/javascript'); require_once '../JShrink.php'; function concatenateFiles($files) { $buffer = ''; foreach($files as $file) { $buffer

我使用自定义函数将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文件

我如何才能做到这一点,缓存清除过程将如何进行


提前感谢。

如果缓存文件不存在,或者如果任何文件修改时间戳晚于缓存,则渲染它,然后将其安全保存到缓存,然后回显缓存或渲染结果。

理论上,您需要使用头。。。有适当的期限。在实践中,这是不正常的。你可以用一生的时间在谷歌上搜索缓存控制和过期的适当例子:你所发现的一切都不起作用。因此,我建议您阅读以下内容:


ETag是一种现代的解决方案,它可以告诉浏览器您的资源是否发生了变化

你让我开心,谢谢。我按照你的说明找到了这个很好的答案,我希望它能帮助别人:很高兴听到:有一个很好的优化数据传输!