私はここで、運用サーバーでアセットをプリコンパイルするために何度も試行錯誤してきました (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:dev マシンでプリコンパイル、どちらも問題ありません。
それを本番マシンに送信し、まったく同じコードを実行すると、次のようになります。
require_tree 引数はディレクトリでなければなりません
ここには、私が見ていない小さな小さな違いがあるはずです。どんな助けでも大歓迎です!