ruby-on-rails - 在 Rails 4 中更改临时目录

标签 ruby-on-rails ruby ruby-on-rails-4

我想更改 Rails 4 中的临时目录。默认目录是 "#{Rails.root}/tmp" 但我想将其更改为其他内容,例如:"/tmp".

我已经找到如何从 "#{Rails.root}/tmp" 更改缓存目录:

config.cache_store = :file_store, '...'
config.assets.cache_store = :file_store, '...'

Sprockets 似乎仍在使用默认的 tmp 目录进行缓存。

在我的 Rails 3 项目中,我在 config/application.rb 中添加了以下内容:

if ENV['RAILS_TMP'].present?
  config.cache_store = :file_store, ENV['RAILS_TMP'] + '/cache/'
  config.assets.cache_store = :file_store, ENV['RAILS_TMP'] + '/assets'
  config.sass.cache = false
end

设置 RAILS_TMP 会导致 tmp 目录发生变化。我有一种奇怪的感觉,这现在是硬编码的。

最佳答案

似乎有些库喜欢对值进行硬编码...参见:[1]

通过添加以下内容,您可以绕过硬编码值:

  config.assets.cache_limit = 50.megabytes

  config.assets.configure do |env|
    env.cache = Sprockets::Cache::FileStore.new(
        File.join(ENV['RAILS_TMP'], 'cache/assets'),
        config.assets.cache_limit,
        env.logger
    )
  end

关于ruby-on-rails - 在 Rails 4 中更改临时目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35077463/

相关文章:

ruby-on-rails - 在 Rails 中使用 devise 时,如何添加将以两种不同方式使用该网站的两种不同类型的用户?

ruby-on-rails - Ruby on Rails - 使用国家选择器显示国家真实姓名

python - 在 Ruby 中检查变量类型

ruby - 使用\r,\n 或\r\n 作为行分隔符逐行读取文件

javascript - 如何以一种形式访问循环选择器的多个变量?

css - 将单选按钮的标签放在按钮旁边

ruby-on-rails - Ffmpeg 的时间限制

ruby-on-rails - 良好实践——模型中的重定向? -- rails 3.1

ruby-on-rails - Rails 嵌套 has_one : cannot delete existing record

ruby-on-rails - 更改 Rails 4 中的默认日期和时间格式