2

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

提前致谢。

4

1 回答 1

1

Rails 2.3没有资产管道。所以不需要预编译资产。您的资产应该已经位于Rails.root/public/stylesheets文件夹中

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

您的问题很可能是某种缓存。您可以尝试使用它的 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地方。djfhsfhkkjdsfhstyle.css

是几个常用的技巧。

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

于 2013-10-16T16:53:30.963 回答