2011-11-07 66 views
5

我正在使用的rails 3.0.x项目使用包含大量测试数据的gem,这些数据不需要用于heroku部署。我想排除这个来自heroku slu as,因为它增加了几十个megs给slu((并且已经推动我们超过了100mb的大小限制几次,我们的slu is因其他原因而大)。从heroku slugs中排除宝石中的文件(使用.slugignore,heroku)

我已经尝试使用.slugignore机制来做到这一点,但我找不到一种方法让它在gems中排除文件,而不是在应用程序中排除文件。这是在Bamboo Stack上运行的rails 3.0.x应用程序,但如果在这些版本中有解决方法/过程,我会升级到rails 3.1和/或雪松堆栈。

关于解决这个问题的其他建议不是“让宝石变小”,也是非常值得欢迎的。

回答

0

在雪松堆栈上,宝石安装到您的vendor文件夹中(实际路径类似于vendor/bundle/ruby/1.9.1/gems/),所以我相信您可以在需要的子路径中插入副本,尽管我没有尝试过。

+0

没有工作。 .slugignore似乎不是递归的。太糟糕了。宝石中有很多不必要的东西,这些东西在slu not中并不需要。 – dsaronin

0

在一般情况下,这将无法正常工作,因为.slugignore匹配的文件在安装gem文件之前被删除。看到下面的heroku部署输出:

-----> Deleting 2 files matching .slugignore patterns. 
-----> Ruby/Rails app detected 
-----> Installing dependencies using Bundler version 1.3.0.pre.5 
     Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment 
     Using rake (10.0.3) 
     Using Platform (0.4.0) 
     Using open4 (1.3.0) 
     ...