2011-11-26 54 views
1

我在Rails 3.1中有一个应用程序,当我在application.css中进行任何更改时,所以这些更改不会应用在页面上。Rails 3.1 - 如何更新CSS样式

在Rails 3中,这里还有别的东西吗?

+1

您是否在使用资产管道? –

回答

2

您是否在生产模式下运行应用程序?如果是这样的话,你需要预编译这些资源(rake assests:预编译)并重启你的web服务器。

3

从Rails 3.1开始,编译资产被写入config.assets.prefix中指定的位置。您必须在部署过程中或在本地主机上使用下面的任务,如果你没有写访问您的文件系统生产:

bundle exec rake assets:precompile 

你可以配置你的应用程序更快的资产预编译。为此,可以通过在config/application.rb中将config.assets.initialize_on_precompile设置为false来部分加载应用程序。但是,您应该注意,在这种情况下,模板无法看到应用程序对象或方法。 Heroku要求将它设置为false,所以如果你在那里运行你的应用程序,你应该这样做。

+0

我如何撤销此操作?我应用了它,现在我需要运行这个每次更新我的CSS在开发模式 –

+1

我想我自己找到了答案。我只需从公共目录中的资产文件夹中删除编译的资产。请纠正我,如果这是错误的:) –

+1

是的。我也必须做同样的事情。 – Simpleton

1

我也偶然发现了这一点。

稍微戳动一下就会发现,当您运行rake资产时:precompile,作为其进程的一部分,它会将application.css文件写入公用文件夹。

看来,它是公用目录中的application.css,它将在后续请求上提供服务,而不是您正在处理的资产文件夹中的服务。

如果删除公共目录中的application.css文件,则在重新加载页面时应该能够看到对CSS的更新。

我希望有帮助。