我已经通过Yii2对我的网站进行了编程。当我刷新我的网站时,它就像Ctl + F5
一样,所有font awesome
和我网站的所有缓存都会重新加载。看起来好像我第一次打开页面。
答案 0 :(得分:5)
在配置文件中添加。根据你的需要。
<强> $ linkAssets
是否使用符号链接发布资产文件。默认为 false,表示资产文件被复制到$ basePath。使用符号 链接具有已发布资产永远存在的好处 与源资产一致,没有复制操作 需要。这在开发过程中特别有用。
'components' => [
'assetManager' => [
'linkAssets' => true,
],
]
或者
<强> $ forceCopy
是否应该复制正在发布的目录 在目标目录中找到。此选项仅在以下情况下使用 发布目录。您可能希望在此期间将其设置为true 开发阶段,以确保始终发布目录 最新。不要像生产服务器那样将此设置为true 显着降低了性能。
'components' => [
'assetManager' => [
'forceCopy' => true,
],
]
有关详细信息,请单击这些有用的链接
或者,
因为,我正在使用Yii2-App-Basic
。因此,我的资产正在ROOT/web/assets folder
中创建。所以,我手动点击此操作以清除我的缓存。这不是清除缓存的好方法。尽管如此,它暂时有用。
此功能,我在 SiteController.php 中创建。
而且,我点击了网址:MyWebsite.com/site/clear-cache
。
<?
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;
}