【问题标题】:How to clear Sprockets cache?如何清除 Sprockets 缓存?
【发布时间】:2012-03-04 00:46:31
【问题描述】:

当 Sprockets 对象编译失败时(由于 CoffeeScript 或 SASS 中的语法错误),在修复错误后无法重新编译,因为它说“文件已被需要”。

为了让 Sprockets 对象工作,我必须销毁并重新创建它。我想知道是否有人知道是否有办法告诉 Sprocket 对象在内部重置自身以免遇到此问题。

【问题讨论】:

  • 这是在开发模式还是在您使用预编译资产的环境中?

标签: sprockets


【解决方案1】:

rake tmp:cache:clear 删除临时缓存目录。

【讨论】:

  • 不清理 sprocket 缓存。 ./tmp/cache/assets/development/sprockets/ 下的文件仍然存在。
  • rake assets:clobber 怎么样?这是最近添加的,可能仅在 Rails 4 中可用。
  • 啊哈。如果你想要一个更有针对性的版本,rake tmp:clear:cache 删除 tmp/cacheedgeguides.rubyonrails.org/command_line.html#tmp
【解决方案2】:

在我的例子中,以下命令有效:

rake tmp:clear

【讨论】:

  • 这是比资产/Sprockets 缓存更广泛的“清晰”。根据tmp docs:“rake tmp:clear 清除所有三个:缓存、会话和套接字”。
【解决方案3】:

应该是:

Rails.application.assets.cache.clear

this method 仅在 master 分支中,甚至在 beta 中。

更新:添加到4.0.0.beta5

【讨论】:

    猜你喜欢
    • 2012-11-12
    • 2011-05-10
    • 2011-11-04
    • 2017-02-11
    • 2020-03-13
    • 2013-02-09
    • 2011-10-17
    • 2011-02-01
    • 2015-11-02
    相关资源
    最近更新 更多