如何在rails 2.3中预编译css样式表?

时间:2013-10-16 15:25:02

标签: css ruby-on-rails nginx ruby-on-rails-2 staging

我为我的客户开发了一项新要求,我在现有的样式表文件中添加了一些css规则,这些更改在开发过程中反映在我的本地计算机上。但是,当我将更改移动到登台服务器并重新启动nginx时,我的所有功能都正常工作但我的css规则没有得到应用,当我检查firebug控制台时,特定文件被包含但我的新css规则不在那里,应该我预先编译我的CSS样式表,如果是这样,如何在rails 2.3.x中进行...?

提前致谢。

1 个答案:

答案 0 :(得分:1)

Rails 2.3没有资产管道。因此无需预编译资产。您的资产应已位于Rails.root/public/stylesheets文件夹

Rails.root/public/文件夹中的任何内容都由web server直接提供,并且不涉及rails。

您的问题很可能是某种缓存。您可以尝试直接使用其URL(例如

)获取样式表
http://server.domain/stylesheets/mystyles.css

并查看您的更改是否得到反映。

您还可以查看Firebug - > Net标签用于查看是否正在从服务器下载样式表(http返回代码: 200 OK ),或者是从缓存中获取样式表(http返回代码:的 304 Not Modified

有一些方法可以处理rails 3.1 asset pipeline合并的此类问题。

  1. 内容更改时使用其他文件名
  2. 使用ETag标题
  3. 将唯一哈希(使用文件的时间戳计算)附加为query string。例如http://domain/style.css?djfhsfhkkjdsfh djfhsfhkkjdsfh每次style.css修改后都会更改。{/ li>

    是一些常用的技巧。

    如果您热衷于使用rails 2.3资产管道,那么您可以选择Jammit

    等选项