eve*_*ets 28 ruby-on-rails production-environment ruby-on-rails-3 sprockets asset-pipeline
我一直在这里试图让资产在我的生产服务器上进行预编译(使用ruby 1.9.2和Rails 3.1.1进行简单的ubuntu安装,并使用新的链轮2.10尝试3.1.2RC) .
"require_tree参数必须是目录".我已经在堆栈上看到了与此相关的其他问题,但情况并不完全相同,并且所提出的解决方案都没有帮助 - 比如在子文件夹中创建存根文件,然后仅在该点相对引用.没运气.
最重要的是,当然,这在所有开发机器上都是完美的(mac具有相同的配置,甚至可以匹配宝石的宝石),在生产环境中.
这是我的/app/assets/javascript/application.js:
//= require ../../views/app/manifest
//= require_self
Run Code Online (Sandbox Code Playgroud)
不是很多.基本上只是指向应用程序区域的真实清单文件(是的,不完全是盒装香草Rails但是......)
这是我的观点/ admin(/views/app/manifest.coffee.js)中的存根清单:
# = require ./app
# = require_tree ./models
# = require_directory ./views <- or using require_directory, either would work fine.
Run Code Online (Sandbox Code Playgroud)
就像我说的那样,在开发环境中,没有任何问题.资产管道即时编译,一切都很好.运行,rake资产:在dev机器上预编译,也没有问题.
我把它发送到生产机器并运行完全相同的代码,我得到:
require_tree参数必须是目录
这里必须有一些细微的差别,我只是没有看到.任何帮助将非常感激!
Kei*_*cht 85
我遇到了你所描述的完全相同的问题.我的生产服务器是Heroku(雪松堆栈).在我的情况下,问题是我的一个:
require_tree ./mobile
Run Code Online (Sandbox Code Playgroud)
指向合法目录,但此目录没有文件.在dev上它并不重要但是关于生产设置的一些事情导致了错误,"require_tree参数必须是一个目录".
希望这会有所帮助.
qup*_*qup 17
require_tree 必须被赋予一个现有文件夹,但git 不存储空文件夹,因此当你在heroku上部署时,那些空文件夹不存在.
一个技巧是将空的.keep文件添加到要保留的文件夹中.