谁能给我解释一下rake assets:clean
命令到底是做什么的?不幸的是,Rails指南没有提到这一点。还有命令rake assets:cleanup
。有什么不同?
此外,谁能告诉我什么时候我必须在生产中运行rake assets:precompile
。在将所有应用程序文件部署到生产服务器后,我是否可以在服务器控制台上运行它?或者我在本地计算机上使用precompile
,然后部署所有文件?
感谢所有人
发布于 2012-02-18 05:45:19
注意:这个答案是rails 3特有的。对于rails 4和更高版本,请查看此处的其他答案。
如果您在本地机器上预编译,那么您可以将这些生成的资产提交到存储库并继续部署。不需要在生产机器上编译它们。
但这也带来了一个问题:现在,当你改变源文件(coffescript / scss)时,应用程序不会接受这些改变,因为它将提供预编译的文件。rake assets:clean
删除这些预编译文件。
在我的项目中,资产被预编译为部署的一部分。Capistrano让这一切变得非常简单。
而且,我从来没有听说过rake assets:cleanup
。
发布于 2014-10-07 15:57:38
运行rake assets:clobber
以实际清理资产。http://www.dixis.com/?p=735
发布于 2015-08-20 07:39:25
Sergio的答案在Rails3中是完全正确的。rake assets:clean
删除了之前预编译到public/assets
目录中的所有资产。
在Rails4中,您可以运行rake assets:clobber
来做同样的事情。
如果您使用以下配置运行rake assets:precompile
(在分段和生产环境中默认情况下处于打开状态):
# config/environments/production.rb
config.assets.digest = true
编译后的资产会有时间戳。这意味着您可以编译新资产,同时保留旧资产不变。你通常希望在生产环境中这样做,这样当你运行precompile
创建新文件时,你的网站仍然会访问旧文件(因为你已经添加了新的css/javascript)。现在,您希望删除不再使用的旧文件。clean
会删除预编译资产的旧版本,同时保留新资产。
https://stackoverflow.com/questions/9335803
复制相似问题