访问网页,慢,F12抓,发现js等无法浏览器缓存
排查了原因是:url后v=XX一直在变化。为什么会变化呢?
1、找到html页面里引用这个js的地方
<link rel="stylesheet" media="screen" href="__ADDON__/css/swiper.min.css?v={$site.version}">打印{$site.version}发现确实每次请求都在变化
2、分析后端control
class Archives extends Base
{
}
找到基类Base
/**
* CMS控制器基类
*/
class Base extends \think\addons\Controller
{
}再钻下去 thinkaddonsController,文件在:vendorkarsonzhangfastadmin-addonssrcaddons
/**
* 插件基类控制器
* @package think\addons
*/
class Controller extends \think\Controller
{
protected function _initialize()
{
$site = Config::get("site");
$this->assign('site', $site);
}
}里面有$site的赋值,打印出来,看到version的值确实每次都变化了。但是Config::get("site")只是取值,看不到为什么变化了。
后来AI的帮助下,找到application/common/behavior/Common.php 文件:
if (Config::get('app_debug')) {
// 如果是调试模式将version置为当前的时间戳可避免缓存
Config::set('site.version', time());
// 如果是开发模式那么将异常模板修改成官方的
Config::set('exception_tmpl', THINK_PATH . 'tpl' . DS . 'think_exception.tpl');
}原来是config文件里app_debug 为调试模式,导致每次请求都是新的version。
把这个值改为false。