Yii2 为什么每次刷新页面,缓存重新加载?

Yii2 为什么每次刷新页面,缓存重新加载?,yii2,yii2-advanced-app,Yii2,Yii2 Advanced App,我已经用Yii2为我的网站编程。当我刷新我的网站时,它的工作方式类似于Ctl+F5,所有font-awesome和我网站的所有缓存都会重新加载。看起来像是我第一次打开页面 将其添加到您的配置文件中。根据你的需要 $linkAssets 是否使用符号链接发布资源文件。默认为 false,表示资产文件被复制到$basePath。使用符号 链接的好处是,已发布的资产将始终保持不变 与源资产一致,没有复制操作 必修的。这在开发过程中特别有用 或 $forceCopy 是否应复制正在发布的目录,即使它是

我已经用Yii2为我的网站编程。当我刷新我的网站时,它的工作方式类似于
Ctl+F5
,所有
font-awesome
和我网站的所有缓存都会重新加载。看起来像是我第一次打开页面


将其添加到您的配置文件中。根据你的需要

$linkAssets

是否使用符号链接发布资源文件。默认为 false,表示资产文件被复制到$basePath。使用符号 链接的好处是,已发布的资产将始终保持不变 与源资产一致,没有复制操作 必修的。这在开发过程中特别有用

$forceCopy

是否应复制正在发布的目录,即使它是 在目标目录中找到。此选项仅在以下情况下使用: 发布目录。您可能希望在测试期间将其设置为true 开发阶段,以确保发布的目录始终处于 最新的在生产服务器上不要将此设置为true,因为它会 显著降低性能

有关更多信息,请单击这些有用的链接

  • 或者

    如前所述,我正在使用
    Yii2应用程序Basic
    。因此,我的资产是在
    根/web/Assets文件夹中创建的。因此,我手动点击此操作以清除缓存。这不是清除缓存的好方法。尽管如此,它暂时还是有用的

    这个函数是我在SiteController.php中创建的

    然后,我点击URL,比如:
    MyWebsite.com/site/clearcache

    <?
    public function actionClearCache(){
      $cacheDirPath = $_SERVER['DOCUMENT_ROOT'].'/assets';
      if($this->destroy_dir($cacheDirPath, 0)){
        Yii::$app->session->setFlash('success', 'Cache cleared.');
      } 
      return $this->render('some-page');
    }
    
    private function destroy_dir($dir, $i = 1) {
      if (!is_dir($dir) || is_link($dir))
        return unlink($dir);
      foreach (scandir($dir) as $file) {
        if ($file == '.' || $file == '..') continue;
        if (!$this->destroy_dir($dir . DIRECTORY_SEPARATOR . $file)) {
          chmod($dir . DIRECTORY_SEPARATOR . $file, 0777);
          if (!$this->destroy_dir($dir . DIRECTORY_SEPARATOR . $file))
            return false;
        };
      }
      if($i == 1)return rmdir($dir);
      return true;
    }
    

    将其添加到您的配置文件中。根据你的需要

    $linkAssets

    是否使用符号链接发布资源文件。默认为 false,表示资产文件被复制到$basePath。使用符号 链接的好处是,已发布的资产将始终保持不变 与源资产一致,没有复制操作 必修的。这在开发过程中特别有用

    $forceCopy

    是否应复制正在发布的目录,即使它是 在目标目录中找到。此选项仅在以下情况下使用: 发布目录。您可能希望在测试期间将其设置为true 开发阶段,以确保发布的目录始终处于 最新的在生产服务器上不要将此设置为true,因为它会 显著降低性能

    有关更多信息,请单击这些有用的链接

  • 或者

    如前所述,我正在使用
    Yii2应用程序Basic
    。因此,我的资产是在
    根/web/Assets文件夹中创建的。因此,我手动点击此操作以清除缓存。这不是清除缓存的好方法。尽管如此,它暂时还是有用的

    这个函数是我在SiteController.php中创建的

    然后,我点击URL,比如:
    MyWebsite.com/site/clearcache

    <?
    public function actionClearCache(){
      $cacheDirPath = $_SERVER['DOCUMENT_ROOT'].'/assets';
      if($this->destroy_dir($cacheDirPath, 0)){
        Yii::$app->session->setFlash('success', 'Cache cleared.');
      } 
      return $this->render('some-page');
    }
    
    private function destroy_dir($dir, $i = 1) {
      if (!is_dir($dir) || is_link($dir))
        return unlink($dir);
      foreach (scandir($dir) as $file) {
        if ($file == '.' || $file == '..') continue;
        if (!$this->destroy_dir($dir . DIRECTORY_SEPARATOR . $file)) {
          chmod($dir . DIRECTORY_SEPARATOR . $file, 0777);
          if (!$this->destroy_dir($dir . DIRECTORY_SEPARATOR . $file))
            return false;
        };
      }
      if($i == 1)return rmdir($dir);
      return true;
    }
    

    谢谢你的回答,但我不是要求清除缓存,即使我不想每次刷新都清除现金。所以。您想要的@MohammadAghayariMy网页在每次刷新时自动重新加载所有缓存。但我不想每次都重新加载缓存。这就是我给你的:
    linkAssets
    &
    forcecopy
    属性@MohammadAghayariYou可能想添加
    if($file='.| |$file='...'.|$file=='.gitignore')
    Tanks以获得您的答案,但我不会要求清除缓存,即使我不想在每次刷新时清除现金。所以。您想要的@MohammadAghayariMy网页在每次刷新时自动重新加载所有缓存。但我不想每次都重新加载缓存。这就是我给你的:
    linkAssets
    &
    forcecopy
    属性@MohammadAghayariYou可能希望添加
    if($file='.| |$file='.'''.|$file=='.gitignore')
    <?
    public function actionClearCache(){
      $cacheDirPath = $_SERVER['DOCUMENT_ROOT'].'/assets';
      if($this->destroy_dir($cacheDirPath, 0)){
        Yii::$app->session->setFlash('success', 'Cache cleared.');
      } 
      return $this->render('some-page');
    }
    
    private function destroy_dir($dir, $i = 1) {
      if (!is_dir($dir) || is_link($dir))
        return unlink($dir);
      foreach (scandir($dir) as $file) {
        if ($file == '.' || $file == '..') continue;
        if (!$this->destroy_dir($dir . DIRECTORY_SEPARATOR . $file)) {
          chmod($dir . DIRECTORY_SEPARATOR . $file, 0777);
          if (!$this->destroy_dir($dir . DIRECTORY_SEPARATOR . $file))
            return false;
        };
      }
      if($i == 1)return rmdir($dir);
      return true;
    }