我一直在尝试让资产在我的生产服务器上进行预编译(使用 ruby 1.9.2 和 Rails 3.1.1 直接安装 ubuntu,并尝试使用新的 sprockets 2.10 安装 3.1.2RC) .
“require_tree 参数必须是目录”。我已经在堆栈上看到了与此相关的其他问题,但情况并不完全相同,并且所提出的解决方案都没有帮助 - 比如在子文件夹中创建一个存根文件,然后在那时仅相对引用。没运气。
最重要的是,这当然适用于生产环境中的所有开发机器(mac,但具有相同的配置,甚至匹配 gem 的 gem)。
这是我的 /app/assets/javascript/application.js:
//= require ../../views/app/manifest
//= require_self
没什么。基本上只是指向应用程序区域的真实清单文件(是的,不完全是盒装的香草 Rails 而是......)
这是我的视图/管理员(/views/app/manifest.coffee.js)中的存根清单:
# = require ./app
# = require_tree ./models
# = require_directory ./views <- or using require_directory, either would work fine.
就像我说的,在开发环境中,完全没有问题。资产管道即时编译,一切都很好。运行,rake assets:在开发机器上预编译,也没有问题。
我将它发送到生产机器并运行完全相同的代码,我得到:
require_tree 参数必须是目录
这里必须有一些我没有看到的微小差异。任何帮助将非常感激!