2013-04-13 26 views
1

我在Heroku上运行Rails 3.2应用程序,因此需要使用资产管道。这已经严重混淆了我,而现在关于Rails的资产管道为什么Rails 3资产管道总是在没有任何变化的情况下重新生成资产?

一件事是这个小实验的结果是:

git rm -r public/assets 

git commit -m "Nuke all generated assets" 

RAILS_ENV=production bundle exec rake assets:precompile 

git add . 

RAILS_ENV=production bundle exec rake assets:precompile 

具体来说,如果我检查我的演出和不分阶段的变化之间的区别,我发现第二个资产预编译已经重新生成/ refingerprinted /提醒所有我的CSS和JS。

为什么要在资产编制之间不做任何更改?

显然目前的时间戳是以某种方式参与的,但是为什么是那么的 - 那么当我再次改变时呢?

最后,有没有什么方法可以改变资产预编译,使CSS和JS资源只有在自上次预编译后发生更改时才会重新生成?

回答

0

它会改变,因为每次你创建一个新的gzip文件,即使内容是相同的,生成的文件将是不同的,和源代码控制系统不知道该怎么处理这件事(它不应该这样做)。

你应该看看this answer知道要添加到gitignore的文件。

你也可以在github上看看this discussion

相关问题