资产管道是否需要公共/资产中的文件?

时间:2012-05-01 02:31:56

标签: ruby-on-rails-3 asset-pipeline

我正在将3.0 Rails应用程序升级到3.1.4,包括Asset Pipeline。

我在Heroku上,所以我在我的应用程序中有这个.rb

config.assets.initialize_on_precompile = false

我注意到我跑的时候:

bundle exec rake assets:precompile

它在公共/资产目录中创建文件(即使我的资产已经在app / assets中)。

例如,它会创建像application-72b2779565ba79101724d7356ce7d2ee这样的文件,以及复制app / assets中的图像。

我的问题是: (1)应该将这些文件上传到我的生产服务器吗? (2)如果我想上传这些,我想更新每个应用程序-xxxxxxxx或只更新最新的应用程序?

1 个答案:

答案 0 :(得分:0)

关于第一个问题:Heroku不允许您修改文件系统。因此,您的断言是正确的 - 您需要在将资产管道发送到Heroku之前对其进行预编译,以便可以在生产环境中使用它。

后者:你要确保你有最新的编译。任何其他人都不会被使用。 “xxxxxxx”部分旨在确保您的用户拥有最新版本的资产。这是一种对浏览器获取内容进行版本控制的方法,并确保它们不会缓存JavaScript的错误副本,当您想要设置缓存以保留JS和CSS文件时,只要它们可以,而不是不断从你的网络服务器上获取它。

带点我的Heroku评论,因为我之前没有部署到Heroku。我只知道他们的系统在某种程度上如何运作。