我创建了一个使用CKEDITOR的cms应用程序,当我向CKEDITOR添加一些功能时,我需要刷新一些CKEDITOR .js /.css文件。
但CKEDITOR强制浏览器缓存它们。
我看到它对所有.js / .css文件使用查询字符串
这个查询字符反映了我认为的CKEDITOR版本:
/Js/ckeditor/config.js?t=CAPD
/Js/ckeditor/lang/it.js?t=CAPD
/Js/ckeditor/plugins/onchange/plugin.js?t=CAPD
在CKEDITOR中有嵌入式方法吗?
我在文档中找不到任何内容。 我正在使用CKEDITOR 4
主要问题是,当我上传一些更改时,客户端不会更新它们,并且新功能不可用或最坏情况CKEDITOR不起作用。
答案 0 :(得分:52)
我找到了一种非常优雅的方式:
设置:
就足够了CKEDITOR.timestamp='ABCD';
链接ckeditor.js之后,或者在ckeditor加载所有文件之前
这是CKEDITOR用于向其动态加载的所有.js .css文件添加时间戳的变量。
所以每次我更改这些文件时,我都会更新该变量,浏览器会重新加载它们。
答案 1 :(得分:2)
我在这里做了什么来解决它。在/ckeditor/config.js中添加以下行:
CKEDITOR.timestamp = 'something_random';
更新" something_random"每次有插件更新。
在使用它的页面中,确保并加载如下资源:
<script type="text/javascript" src="/ckeditor/ckeditor.js"></script>
<script src="/ckeditor/config.js?v=something_random"></script>
通过执行此操作,config.js将被加载两次,因为CKEditor会将其加载到它自己,但它仍然可以正常工作,这应该为您提供在所有浏览器上自动刷新所需的控件。我是.NET开发人员,实际上把/ckeditor.config放在我的捆绑器中,所以它会自动获取查询字符串上的版本,但是如果你没有使用花哨的捆绑器,那就按我上面所说的做手动使用?v = something_random。
答案 2 :(得分:1)
对我来说,设置CKEDITOR.timestamp = +new Date
非常好。我在一个JS中编写了它,它将在加载任何其他CKEditor JS之前加载(see my custom Drupal module)。
现在,每次重新加载浏览器时,附加到自定义插件或自定义配置JS的查询都会刷新。我想这可能也适用于自定义CSS,但我没有测试过。
答案 3 :(得分:1)
我找到了一种更简单的方法,万一有人仍然对此感到沮丧。
如果您在浏览器中打开附加时间戳的配置文件URL(例如?t = XYZD),进行硬刷,然后返回到您的应用程序页面并刷新它,您应该获得新版本的配置文件。
您需要使用与页面源中的ckeditor相同的时间戳。如果您使用开发人员工具或Firebug,在控制台中输入CKEDITOR.timestamp将为您提供值。
答案 4 :(得分:0)
您可以随时在网址中添加唯一时间戳作为变量,或者只是进行硬刷新(CTRL + F5)
答案 5 :(得分:0)
时间戳解决方案对我没有用,所以如果其他人有同样的问题,我附加了?v = date到我包括ckeditor.js的地方,然后又在ckeditor.js里面config.js被引用。
似乎自从缓存config.js以来,新时间戳不会被使用。至少在几次刷新之后,但这不是我可以告诉用户做的事情。
答案 6 :(得分:0)
将以下代码添加到ckeditor.js
/*Lets Create a random number*/
function randomString(length, chars) {
var result = '';
for (var i = length; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)];
return result;
}
var rString = randomString(4, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');
之后用ckeditor.js中的值timestamp:rString
替换。
答案 7 :(得分:0)
此技巧在Firefox中不仅适用于CKEditor,而且适用于要切换本地缓存的任何页面。
经过简短的检查,我在Chrome和IE中都找不到类似的设置。
HTH
答案 8 :(得分:0)
将具有改进的配置和css文件的CKEDITOR放到新的子目录中的方法是
src =“ / ckeditor_new_one / ckeditor.js”
答案 9 :(得分:0)
由于这个帖子很受欢迎,让我分享一下我的经验-
我试过@giammin 的回答,但没有用。我最终将 config.js 的权限更改为 664,然后它就像一个魅力。
答案 10 :(得分:-3)
在Firefox上:
IEnumerable<T>
about:config
设为network.http.use-cache