有人能给我解释一下命令rake assets:clean
到底是做什么的吗?不幸的是Rails指南没有提到它。还有命令rake assets:cleanup
。有什么区别吗?
此外,有人能告诉我什么时候必须在生产环境中运行rake assets:precompile
吗?是在将所有应用程序文件部署到生产服务器后在服务器控制台上运行它吗?还是在本地计算机上运行precompile
,然后部署所有文件?
谢谢大家
有人能给我解释一下命令rake assets:clean
到底是做什么的吗?不幸的是Rails指南没有提到它。还有命令rake assets:cleanup
。有什么区别吗?
此外,有人能告诉我什么时候必须在生产环境中运行rake assets:precompile
吗?是在将所有应用程序文件部署到生产服务器后在服务器控制台上运行它吗?还是在本地计算机上运行precompile
,然后部署所有文件?
谢谢大家
7条答案
按热度按时间ryevplcw1#
注:此答案特定于rails 3。对于rails 4及更高版本,请查看此处的其他答案。
如果您在本地机器上预编译,那么您可以将这些生成的资产提交到存储库中并继续部署,而无需在生产机器上编译它们。
但它引入了一个问题:现在当你改变源文件(coffescript / scss)时,app不会接受这些改变,因为它会提供预编译文件。
rake assets:clean
会删除这些预编译文件。在我的项目中,资产是作为部署的一部分进行预编译的,Capistrano使它变得非常容易。
还有,我从来没有听说过
rake assets:cleanup
。siv3szwd2#
运行
rake assets:clobber
以实际清理资产。http://www.dixis.com/?p=735e5nqia273#
Sergio的答案在Rails 3中是完全正确的。
rake assets:clean
删除了之前预编译到public/assets
目录中的所有资产。在Rails 4中,您可以运行
rake assets:clobber
来做同样的事情。如果使用以下配置运行
rake assets:precompile
(默认情况下,在过渡和生产中打开):您编译的资源会有时间戳。这意味着您可以在编译新资源的同时保留旧资源。您通常希望在生产中这样做,这样您的网站在运行
precompile
创建新文件时仍将访问旧文件(因为你已经添加了新的css/javascript).你现在想要摆脱不再使用的旧文件。clean
删除了旧版本的预编译资产,同时保留了新资产。3df52oht4#
rake assets:clean
删除编译的资产。它由cap deploy:assets:clean
运行,用于删除编译的资产,通常从远程服务器删除。cap deploy:clean
通常从远程服务器删除旧版本。它不是rake assets:clean
耙!=盖
e7arh2l65#
rake assets:clean
现在由cap deploy:cleanup_assets
运行。将require 'capistrano/rails/assets'
添加到Capfile中,您将获得此cap-task。我的capistrano版本是v3.2.1。vq8itlhq6#
clean删除以前编译的资源,保留当前版本
qvk1mo1f7#
用
git clean -f
(文件)和git clean -f -d
(目录)清除那些未跟踪的文件