CKEditor插件在删除后缓存在磁盘中。如何强制浏览器重新扫描或删除该缓存?

问题描述 投票:0回答:2

我不确定根本问题是什么(Chrome,CKEditor,PHP,Ubuntu等),但这基本上是发生了什么:

  1. 使用Composer更新CKEditor,我更改版本并进行更新
  2. 我看到新版本不包含特定的插件(如,Autogrow)
  3. 在使用Git将composer.json的更改从我的本地环境推送到生产之后,我更新了prod服务器
  4. 一切看起来都不错,除了CKEditor的供应商文件夹中不存在的插件正在“从磁盘缓存”加载

我可以隐姓埋名运行Chrome,并验证应该丢失的插件确实丢失了。但是,我不能在Chrome中执行缓存刷新,并让磁盘缓存删除那些不再存在的目录。

有趣的是,Android上的Chrome没有这个问题,这就是我在CKEditor没有加载到手机上时发现错误的原因(缺少插件)。

尝试的解决方案:

  • 完全从作曲家中删除CKEditor。推/拉更新。重新添加CKEditor,仍然看到这些插件缓存在磁盘中
  • 更新要版本化的ckeditor.js文件(即ckeditor.js?v = 1.02)
  • Ran composer clearcache
  • 试过PHP的clearstatcache()

我试图找到一个解决方案,我可以从开发人员那里做,而不是作为最终用户。

我附上了缓存在磁盘中的js文件的屏幕截图。

任何帮助表示赞赏。谢谢

enter image description here

编辑:这是:

  • Ubuntu Server 18.04
  • PHP 7.2
  • CKEditor 4.8到4.10
javascript php ubuntu caching ckeditor
2个回答
0
投票

如果您使用Chrome,请按Shift + F5 ..它将清除缓存


0
投票

事实证明此问题已经提出过:

Force CKEDITOR to refresh config

归功于:@giammin

他写了:

CKEDITOR.timestamp='ABCD';

在你链接ckeditor.js之后或者在ckeditor加载它的所有文件之前

这是CKEDITOR用于向其动态加载的所有.js .css文件添加时间戳的变量。

因此每次我更改这些文件时,我都会更新该变量,浏览器会重新加载它们。

这对我有用。我可以看到一些文件仍然使用较旧的时间戳,但出于这个问题的目的,这解决了。再次,归功于@giammin。

© www.soinside.com 2019 - 2024. All rights reserved.