尽管有更改,Rails仍使用缓存的application.css

我有一个使用SASS的Rails 3.1应用程序。application.css.scss文件如下所示:

@import 'reset.css';
@import '960.css';
@import 'pages/master.css.scss';

我有一个监视脚本,application.css.scss只要更改@imported文件之一,就会触动

有一阵子,这种设置工作正常。自上周以来(我不确定为什么),Rails一直在application.css为网页提取缓存版本,尽管我曾尝试重新启动应用程序,进行润饰application.css.scss等。我也删除.sass-cache了无效。

有任何想法吗?

阿飞小哥2020/03/24 11:01:49

随机我遇到了与使用Twitter Bootstrap和application.css.scss有关的缓存问题。基本上,我将application.css.scss更改为普通的application.css并解决了我的问题。也许这可以帮助您?如果您还没有弄清楚。

斯丁2020/03/24 11:01:49

要清除资产管道缓存,只需使用rm -rf tmp / *即可。在我的经验中,这当然已经解决了一些原本无法解释的CSS和JavaScript故障。作为预防措施,在升级gem或更改资产管道配置后清除缓存也可能是一个好主意,尽管这可能只是迷信。

最后,如果您正在开发环境中试验rake asset:precompile(在后面的文章中对此有更多介绍),则还需要在以后对rm -rf public / assets / *进行清理。

http://blog.55minutes.com/2012/02/untangling-the-rails-asset-pipeline-part-1-caches-and-compass/

伽罗理查德2020/03/24 11:01:49

我遇到过同样的问题。我停止了服务器,执行了rm -fr tmp/cache,我的css文件终于被重建了。

LEYMandyStafan2020/03/24 11:01:49

rake assets:precompile在开发中运行后,我遇到了类似的问题也许Rails正在从中提供预编译资产public/assets尝试清理。

您无需在开发中接触aplication.css.scss,只要@included文件之一发生更改,rails就应提供新内容。

另外,请确保您在 config/environments/development.rb

# Do not compress assets
config.assets.compress = false

# Expands the lines which load the assets
config.assets.debug = true