究竟"config.assets.debug"设置到底是什么?

got*_*tqn 24 ruby ruby-on-rails jruby ruby-on-rails-3 asset-pipeline

我已经开始开发简单的rails应用程序了.经过几个小时的工作后,我注意到删除的css仍以某种方式应用于网页.

为了解决这个问题,我多次执行了以下操作:

  1. 停止/启动服务器
  2. 使用rails服务器
  3. 使用扭矩箱服务器
  4. 删除浏览器缓存

但没有变化.这很奇怪 - 新的css定义已经应用,但我删除的那些仍然存在.所以,我放弃了,决定创建新项目.

我已经设置了新项目(它的脚手架与第一个脚手架相同),当我打开其中一个视图时,旧项目的样式也被应用了.我决定再次查看http://guides.rubyonrails.org/asset_pipeline.html并找出该设置

#Expands the lines which load the assets
config.assets.debug = false
Run Code Online (Sandbox Code Playgroud)

解决了这个问题.但这个选项究竟做了什么呢?当这是真的时,为什么旧​​的项目css被应用?

bos*_*ood 36

这个选项的效果在这篇文章中有详细描述,但我也在这里总结一下.改变的价值config.assets.debug在于开发中的页面加载时间和调试的简易性之间的折衷.

基本上:

config.assets.debug = true:资产按单独提供,按照您在开发中看到的方式进行组织.像SASS或CoffeeScript这样的预处理语言仍然会显示为目标语言(分别是CSS和JS).

config.assets.debug = false:资产被捆绑到像application.css和的文件中application.js.错误堆栈跟踪可能不再具有正确的行号,并且更难将它们映射回原始代码.