ruby-on-rails - 在 Rails 4 上的开发中禁用 sprockets Assets 缓存

标签 ruby-on-rails caching ruby-on-rails-4 sprockets

另一个问题“Disable Sprockets asset caching in development”解决了如何在 Rails 3.2 中禁用 sprockets 缓存。你如何在 Rails 4 上做同样的事情?我正在研究 Assets 管道深处的 gem ,必须清除 tmp/cache/*并重新启动 Rails 越来越累。

最佳答案

如果您查看 sprockets source ,你可以看到如果 cache_classes那么为真 app.assets设置为 app.assets.index ,不再检查文件系统。

为了在开发中解决这个问题,您可以添加类似于 following 的内容。给您的 development.rb配置:

# Sprockets configuration: prevent sprockets from caching assets in development
# when cache_classes is set to true
sprockets_env = nil
config.assets.configure do |env|
  sprockets_env = env

  # Sprockets environment configuration goes here
  # env.js_compressor  = :uglifier # or :closure, :yui
  # env.css_compressor = :sass   # or :yui
end

if config.cache_classes
  config.after_initialize do
    Rails.application.assets = sprockets_env
  end
end

这实质上是在 Sprockets::Environment 对象被 Sprockets::Index 覆盖之前获得了对它的尊重,并且即使在 cache_classes 时也允许检查文件系统是否有新 Assets 。是真的。这似乎对我们的开发有用,所以希望它也能帮助其他人。

关于ruby-on-rails - 在 Rails 4 上的开发中禁用 sprockets Assets 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22979839/

相关文章:

javascript - Assets 已预编译,但应用程序仍会查找所有单独的 js 文件

javascript - Node.js - 来自 ajax 端点的有序 JSON 数据顺序错误,缓存不是问题

ruby-on-rails - Rails ActiveRecord Shovel (<<) 运算符

html - 使用 textarea 但不使用输入文本的 CSS 类

ruby-on-rails - Rails ActiveRecord 关联

ruby-on-rails - Ruby on Rails 中数据库调用的两个条件

ruby-on-rails - Rails 确定来自 accepts_nested_attributes_for 对象的对象是否已更改?

c++ - 除了memcached,C++还有成熟的分布式缓存解决方案吗?

c# - 如果我不设置明确的过期时间,默认情况下东西会在 httpcache 中保留多长时间?

ruby-on-rails - Rails 直播不工作(卡住请求)