Javascript调试困难,因为浏览器不支持';不要刷新脚本!

Javascript调试困难,因为浏览器不支持';不要刷新脚本!,javascript,ruby-on-rails,mootools,Javascript,Ruby On Rails,Mootools,我正在尝试调试在Mootools框架中编写的Javascript。现在我正在Rails之上开发一个web应用程序,我的web服务器是引导WEBrick的Rails s 当我修改mootools init脚本中调用的特定tree.js文件时 require: { css: [MUI.path.plugins + 'tree/css/style.css'], js: [MUI.path.plugins + 'tree/scripts/tree.js'],

我正在尝试调试在Mootools框架中编写的Javascript。现在我正在Rails之上开发一个web应用程序,我的web服务器是引导WEBrick的Rails s

当我修改mootools init脚本中调用的特定tree.js文件时

    require: {
        css: [MUI.path.plugins + 'tree/css/style.css'],
        js: [MUI.path.plugins + 'tree/scripts/tree.js'],
        onload: function(){
            if (buildTree) buildTree('tree1');
        }
    },
在上次修改发送到客户端的标题时,不会加载更改:2010年7月10日。。。。。这显然不是真的,因为我刚刚修改了文件


我如何摆脱这种恼人的缓存。如果我直接进入浏览器(Chrome)中的脚本,它在我点击“刷新”之前不会显示更改,但这并不能解决我返回应用程序并点击“刷新”时的问题,它仍然会加载预修改的脚本。

在FF中也发生过这种情况,我认为这是服务器或浏览器本身发送的缓存头。 无论如何,在开发过程中避免此问题的一个简单方法是在脚本的文件名中添加一个随机参数


不要调用
'tree/scripts/tree.js'
而使用
'tree/scripts/tree.js?'+random
,它应该会使所有缓存失效。

正如弗里斯科所说,在开发中添加一个随机数会起作用,但您可能会发现问题仍然会影响生产。您希望向用户推送新的JavaScript更改,但在他们的浏览器停止缓存文件之前,您无法这样做。为此,只需获取文件mtime并将其添加为随机字符串。这只会在文件被修改时发生变化,因此JavaScript将从缓存中加载(如果未更改),或者从服务器加载(如果已更改)


PHP有这个功能,但由于我不熟悉Ruby,我恐怕无法在这方面进一步帮助您(对不起!)。但是,它似乎可以实现您想要的功能。

试试Ctrl+F5组合键。以避免命中浏览器缓存

更多信息请点击此处: