我没有使用.htaccess
进行缓存的经验。我找到了一些片段,这些片段适用于静态资源(例如imgs,js,css等),但是在我的项目中,我必须包含一个具有不同到期时间的CDN。
在不影响Google见识的PageSpeed的情况下,如何增加CDN缓存时间。
答案 0 :(得分:0)
您需要做的是将所有.js文件动态导入我们的网站。 要在PHP上执行,请使用file_get_contents()函数。
要做的第一件事是找到外部脚本:
<script type="text/javascript" src="https://ssl.google-analytics.com/ga.js">
</script>
下一步是创建.php文件。我们称之为externaljs.php。在其中插入以下代码:
<?php
$files = array(
'ga.js' => 'https://ssl.google-analytics.com/ga.js',
'bsa.js' => 'https://s3.buysellads.com/ac/bsa.js',
'pro.js' => 'https://s3.buysellads.com/ac/pro.js'
);
if(isset($files[$_GET['file']])) {
if ($files[$_GET['file']] == 'ga.js'){
header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time() + ((60 * 60) * 48)));
// 2 days for GA
} else {
header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time() + (60 * 60))); //
Default set to 1 hour
}
echo file_get_contents($files[$_GET['file']]);
}
?>
第3至7行:创建了一个包含接受文件的数组。这非常重要,因为否则任何文件都可以嵌入到您的站点中,从而导致潜在的安全问题。
第9到14行:由于我们需要调整每个脚本的过期时间,因此我们需要一个条件语句。
第16行:如果在数组中找到了作为GET参数传递的脚本,我们现在可以
安全地显示它。 您需要调整代码并输入外部脚本的网址。完成后,只需将其上传到您的服务器即可。如果您使用的是WordPress,则最好将文件放在主题文件夹中。
然后,只需替换外部.js调用并将其替换为对您的externaljs.php文件的调用,如下所示:
<script type="text/javascript" src="externaljs.php?file=ga.js"></script>
您已完成。现在,您可以在服务器上动态导入外部.js文件,因此,可以为每个脚本设置正确的Expire标头
答案 1 :(得分:0)
您似乎正在使用js来进行分析和广告工作。您应该使用amp-analytics
和amp-ad
标签,而不要插入js。