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