我有一个在CodeIgniter
上开发的音乐网站,该音乐网站使用的是 youtube API ,没有数据库。最近,我注意到system/cache
文件夹中生成了太多文件。
如何停止生成此缓存文件?请注意,我没有使用任何缓存方法。
答案 0 :(得分:1)
system / cache不是默认的codeigniter缓存目录。我不会将缓存存储在那里,作为其框架主文件夹。默认值为应用程序/缓存。
默认情况下,CI不缓存任何内容。因此,您的应用程序是使用缓存构建的。 您告诉过您不使用数据库,所以我认为它不是数据库缓存。
在您的应用中签入“ $ this-> load-> driver('cache'”)。 可以加载缓存而无需其他参数,例如 $ this-> load-> driver('cache');或者带有类似的参数 $ this-> load-> driver('cache',array('adapther'=>'xxx'));
https://www.codeigniter.com/userguide3/libraries/caching.html
现在,在您的应用程序中搜索$ this-> cache-> save或$ this-> cache-> file-> save 如果找到了,则表示您正在使用CI缓存。
问题是,当应用程序启动缓存对象时,您不能仅仅删除缓存加载,否则应用程序将失败,除非您重写所有使用缓存的位置。
现在,您别无选择:
1.just通过cron定期使用一些脚本清理缓存目录。
您可以将缓存文件夹权限更改为NON writable,这将在日志中生成警告,因此应禁用日志记录。这不是恕我直言的正确方法,因为它可能导致致命错误/空白页,而只是可能的解决方案之一。如果使用文件缓存,这应该不会引起问题,而在其他情况下却可以。
您可以扩展缓存库,并只需创建空的缓存SAVE函数。在这种情况下,您的文件将不会保存。
如果服务器上有它,则可以缓存到memcached。好吧,如果您的缓存写成$ this-> cache-> file-> {operation},那么您需要将所有内容更新为$ this-> cache-> memcached-> {operation}。如果缓存的编写方式类似于$ this-> cache-> {operation},则可以调整配置,例如
$ this-> load-> driver('cache',array('adapther'=>'memcached'));
并在配置文件中设置memcached服务器信息。 (config / memcached.php)
您告诉您没有使用任何缓存方法。因此,您应该找不到我上面写的任何代码。
我能想到的最后一件事是
$ this-> output-> cache(xxx); 其中xxx是缓存时间(以分钟为单位)。 它强制整个生成的页面被缓存; 如果找到这样的行,可以尝试将其注释掉,看看会发生什么情况
https://www.codeigniter.com/user_guide/general/caching.html
有一个很好的注释:如果更改可能影响输出的配置选项,则必须手动删除缓存文件。
如果在以上示例中找不到任何内容,则可以使用一些自定义生成缓存。
祝你好运!
答案 1 :(得分:0)
将其放在您的通用控制器中
$ this-> output-> delete_cache();