我正在研究一些用于强制重新加载缓存的javascript文件的方法。问题是,我无法在本地缓存脚本。我检查了Chrome的“网络”标签上的“禁用缓存”选项是否已关闭。我正在使用MVC将其添加到网站首页:
@section scripts
{
@Scripts.Render("~/Scripts/app/test.js")
}
这是test.js的内容:
alert('Welcome to 2');
如果我更改警报文本并刷新页面,无论项目是否重启,它总是新鲜的...
对于不想破坏服务器配置的客户端开发人员,您还可以将test.js
文件更改为test.php
文件(实际上只是更改扩展名),以与您完全相同的方式来命名重新调用它(除非再次将扩展名更改为PHP),然后在PHP文件的顶部添加类似的内容:
<?php
$seconds_to_cache = 3600;
$ts = gmdate("D, d M Y H:i:s", time() + $seconds_to_cache) . " GMT";
header("Expires: $ts");
header("Pragma: cache");
header("Cache-Control: max-age=$seconds_to_cache");
?>
然后将其上传到您的服务器。只要您的服务器处理PHP(可能确实如此),此代码就应强制浏览器缓存新文件,该文件的功能与其他JS文件一样。(摘自https://electrictoolbox.com/php-caching-headers/)