我通常在本地 Dropbox 文件夹中开发。tmp 文件夹中的一些文件被浏览器锁定(并使 Dropbox 保持忙碌),Growl 抛出异常等等。
因此,我正在寻找将 tmp 文件夹放在 Rails-app 包之外的配置设置。那可能吗?
我通常在本地 Dropbox 文件夹中开发。tmp 文件夹中的一些文件被浏览器锁定(并使 Dropbox 保持忙碌),Growl 抛出异常等等。
因此,我正在寻找将 tmp 文件夹放在 Rails-app 包之外的配置设置。那可能吗?
不是您正在寻找的答案 - 但我可以肯定地说,没有配置选项可以更改 Rails 认为 tmp 文件夹的位置。该位置在 Rails 代码库的许多不同位置都被硬编码。
看起来符号链接将同步原始文件,因此您可能会遇到相同的锁定问题。
如果你这样做了,那么你可以反过来使用符号链接来解决你的问题,即。在您的 Dropbox之外创建您的项目,并将除此之外的所有内容符号链接tmp
到您的 Dropbox 中的文件夹中。
所以你可能有你的 Rails 应用程序,~/work/rails_project/<all the rails dirs including tmp>
然后你会在你的 Dropbox 中有一个相应的目录,就像~/dropbox/rails_project
然后在那个目录中你将手动创建一堆符号链接,然后删除tmp
一个,使用 bash 你会这样做:
$ for f in ~/work/rails_project/*; do ln -s $f; done
$ rm tmp
如果您曾经将新文件/目录添加到应用程序的根目录,则需要记住再次运行它。
ENV['TMPDIR'] = Rails.root.join('tmp')
您不能更改 tmp 目录,但可以配置 tmp 缓存目录。
# config/application.rb
config.cache_store = [ :file_store, "/tmp/rails-cache/" ]
config.assets.cache_store = [ :file_store, "/tmp/rails-cache/assets/#{Rails.env}/" ]
您可以使用选择性同步将目录排除在 Dropbox 中同步:http ://www.dropbox.com/help/175/en
基本上选择 Dropbox 首选项并进入高级。然后选择 Selective Sync 并查找要从同步中排除的文件夹[如果您必须进入比第一级目录深度更深的目录,还有一个高级视图]