我在 Heroku 上运行 Rails 3.2 应用程序,因此需要使用资产管道。
关于 Rails 资产管道的一件事让我很困惑一段时间是这个小实验的结果:
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/reminified 我的所有 CSS 和 JS。
当我在资产编译之间没有任何更改时,为什么会发生这种情况?
显然,当前时间戳以某种方式涉及,但为什么会这样 - 再一次 - 我什么也没改变?
最后,是否有任何方法可以更改资产预编译,以便 CSS 和 JS 资产仅在自上次预编译后发生更改时才会重新生成?