在 Laravel 6 中,在 Amazon S3 存储中更新文件内容,打开 CDN 网址,其内容无变化的分析

1、现在网址:https://xxx.cloudfastin.com/static/xxx/98a10389-0831-4aa9-9335-3c2c3f46fd7b/assets/css/app.a572190.css ,其内容的值为:6666 。如图1

图1

2、再次更新 assets/css/app.a572190.css 的内容为:7777,发现网址中的内容无变化。

3、代码实现如下

        return $this->filesystemManager
            ->disk($this->config->get('theme_asset.filesystem.disk'))
            ->put(
                $path,
                $contents,
                $this->config->get('theme_asset.filesystem.options')
            );

4、打印 put 方法的 $options ,其值如下

array(2) {
  ["ACL"]=>
  string(11) "public-read"
  ["CacheControl"]=>
  string(24) "max-age=31536000, public"
}

5、由于 app.a572190.css 文件,是编译后产生的,因此,当此 css 文件的源文件重新编辑后,会生成具有新名称的 app.a572191.css 文件,其对于 S3 的操作是,先生成新的文件(app.a572191.css),再删除旧的文件(app.a572190.css)。所以,同样名称的 css 文件内容无变化,并不会影响到使用此 css 文件的页面,因为页面中引用的是新名称的 app.a572191.css 文件了。

永夜