首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >关于rake资产的困惑:清理/清理rails中的资产管道

关于rake资产的困惑:清理/清理rails中的资产管道
EN

Stack Overflow用户
提问于 2012-02-18 05:40:05
回答 6查看 59.2K关注 0票数 62

谁能给我解释一下rake assets:clean命令到底是做什么的?不幸的是,Rails指南没有提到这一点。还有命令rake assets:cleanup。有什么不同?

此外,谁能告诉我什么时候我必须在生产中运行rake assets:precompile。在将所有应用程序文件部署到生产服务器后,我是否可以在服务器控制台上运行它?或者我在本地计算机上使用precompile,然后部署所有文件?

感谢所有人

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-02-18 05:45:19

注意:这个答案是rails 3特有的。对于rails 4和更高版本,请查看此处的其他答案。

如果您在本地机器上预编译,那么您可以将这些生成的资产提交到存储库并继续部署。不需要在生产机器上编译它们。

但这也带来了一个问题:现在,当你改变源文件(coffescript / scss)时,应用程序不会接受这些改变,因为它将提供预编译的文件。rake assets:clean删除这些预编译文件。

在我的项目中,资产被预编译为部署的一部分。Capistrano让这一切变得非常简单。

而且,我从来没有听说过rake assets:cleanup

票数 66
EN

Stack Overflow用户

发布于 2014-10-07 15:57:38

运行rake assets:clobber以实际清理资产。http://www.dixis.com/?p=735

票数 61
EN

Stack Overflow用户

发布于 2015-08-20 07:39:25

Sergio的答案在Rails3中是完全正确的。rake assets:clean删除了之前预编译到public/assets目录中的所有资产。

在Rails4中,您可以运行rake assets:clobber来做同样的事情。

如果您使用以下配置运行rake assets:precompile (在分段和生产环境中默认情况下处于打开状态):

代码语言:javascript
复制
# config/environments/production.rb
config.assets.digest = true

编译后的资产会有时间戳。这意味着您可以编译新资产,同时保留旧资产不变。你通常希望在生产环境中这样做,这样当你运行precompile创建新文件时,你的网站仍然会访问旧文件(因为你已经添加了新的css/javascript)。现在,您希望删除不再使用的旧文件。clean会删除预编译资产的旧版本,同时保留新资产。

票数 32
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9335803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档