Rails资产管道是否可以强制生成资产?

24

在使用Rails 3.1资产管道时,有没有一种方法可以在每个请求时强制重新生成资产?

当使用Less(less-rails)与一系列部分和mixin文件时,我遇到了获取系统对文件更改的问题。如果我可以在每个请求中强制生成系统,那么我的工作效率将会大大提高。

4个回答

49

要强制重新生成所有资产,请使用:

rake assets:clobber assets:precompile

当 asset_sync 不合作时,这将非常有用...

我知道这可能对你没有帮助,但希望能让其他人更容易找到答案。


21

您可以使用以下方法重置资产缓存:

rake tmp:cache:clear

自动化将是更可取的选择。 - Niels Abildgaard
你需要将这个命令放在一个脚本中,以便在你想要自动化的任何时间点运行它。如果没有更多的信息,我无法提供自动化建议。 - Mike Lyons

2

我已经想通了。

master.less文件(即协调其他包含文件的主要less文件)需要添加管道指令。

因此,在我的情况下,application.css 包含:

/*
 *= require html5reset-1.6.1
 *= require master
*/

而master.css.less包含以下内容:

/*
 *= depend_on mixins
*/
@import "mixins";

你应该强调重要的部分是“depend_on” :) - Niels Abildgaard
这个到底是做什么的?它会在每个请求上使缓存失效吗?在资产管道中发生了什么以实现您想要的结果? - Mike Lyons

2

你需要在开发环境下运行你的服务器。我认为你也可以在当前环境的配置文件中使用config.cache_classes = false之类的东西。


本来以为问题是这个,但事实上是由于有些微小的不同导致的。谢谢。 - Toby Hede

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接