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

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

  • 停止/启动服务器
  • 使用Rails服务器
  • 使用torquebox服务器
  • 删除浏览器缓存

  • 但没有任何变化。非常奇怪-应用了新的CSS定义,但是我删除的那些定义仍然存在。因此,我放弃了并决定创建新项目。

    我已经设置了新项目(其脚手架与第一个相同),当我打开其中一个 View 时,旧项目中的样式也被应用了。我决定再次查看http://guides.rubyonrails.org/asset_pipeline.html并找出该设置
    #Expands the lines which load the assets
    config.assets.debug = false
    

    解决了这个问题。但是这个选项到底在做什么?为什么在这种情况下应用旧项目css?

    最佳答案

    this post中已经很好地描述了此选项的效果,但我也会在这里对其进行总结。更改config.assets.debug的值(value)在于在开发中的页面加载时间与调试的便利性之间进行权衡。

    基本上:
    config.assets.debug = true: Assets 是单独提供的,就像您在开发中看到的那样进行组织。诸如SASS或CoffeeScript之类的预处理语言仍将显示为它们的目标语言(分别为CSS和JS)。
    config.assets.debug = false: Assets bundle 到application.cssapplication.js等文件中。错误堆栈跟踪可能不再具有正确的行号,并且将它们映射回原始代码更加困难。

    07-24 09:45
    查看更多