如果您访问此网页,您可能会在这里,因为您使用的是 Rails 资产管道,并且您对其中一个 javascript 文件进行了更改并重新加载了页面,并且当您在 Sources 选项卡中搜索时,更改不会反映出来在铬。
如上所述,config.assets.debug = false
提示 Sprockets gem 将所有单独的 javascript 和 css 文件分别捆绑到一个 application.js 和 application.css 中。Sprockets 还对所有相关文件运行 SASS 和 CoffeeScript(如果您没有使用 --skip-coffee)预处理器,以生成浏览器可以理解的 css 和 javascript 文件。
一个重要的注意事项如下。Ruby Guides 这么说 debug = false:
在服务器启动后的第一个请求上缓存资产。如果清单中的任何文件在请求之间发生了变化,服务器将使用新的编译文件进行响应。
这意味着如果您不更改请求之间的 css 或 javascript 文件,则将使用缓存。一旦您更改文件,缓存就会失效,并为后续请求创建新的缓存。
因此,如果您对 javascript 文件进行了更改并且更改未反映在页面重新加载上,则与此选项无关config.assets.debug
。
还有另一个选项称为
config.action_controller.perform_caching
.
但默认情况下,此选项在开发中默认为 false。也就是说,默认情况下,缓存仅在您的生产环境中启用。在当前版本中,Rails 默认只附带片段缓存。您必须为 Page 和 Action 缓存安装单独的 gem。
片段缓存允许将视图逻辑的片段包装在缓存块中,并在下一个请求进入时从缓存存储中提供。但是,当视图片段更改时,缓存片段也将过期(例如,HTML视图发生变化)。
所以问题仍然是为什么你的javascript的变化没有反映出来?答案是谷歌浏览器,浏览器本身,不管你的 Rails 设置如何缓存页面。要删除缓存,请关闭当前选项卡,打开一个新选项卡,然后再次访问该站点。