28

ここでは、私のプロダクションサーバでアセットをあらかじめコンパイルしようとしています。(Ruby 1.9.2とRailsを使った簡単なubuntuインストール3.1.1、新しいスプロケット2.10で3.1.2RCを試しました)。"require_tree引数はディレクトリでなければなりません" rails 3.1.1プリコンパイルアセット

"require_tree引数はディレクトリでなければなりません"。私はスタック上でこれに関連する他の問題を見てきましたが、状況はまったく同じではなく、提案されたソリューションのどれも助けられませんでした - サブフォルダ内にスタブファイルを作成し、運がない。

そして、これはもちろん、これはすべての開発マシン(Macでは同じですが、宝石のための宝石と一致する同一の設定でも)で完璧に動作します。それに

//= require ../../views/app/manifest 
//= require_self 

あまり:

は、ここに私の/app/assets/javascript/application.jsです。基本的にはアプリケーションエリアの実際のマニフェストファイルを指しているだけです(ちなみに正確なボックス化されたバニラのRailsではなく...)

私のビューの/ admin//views/app/manifest.coffee.js ):

# = require ./app 
# = require_tree ./models 
# = require_directory ./views <- or using require_directory, either would work fine. 

私が言ったように、dev envでは全く問題はありません。資産パイプラインは即座にコンパイルされ、すべてが素晴らしいです。ランニング、レイクアセット:devマシン上でプリコンパイルしても問題ありません。

私は生産機械にそれを送信し、まったく同じコードを実行して、私が手:

require_tree引数がディレクトリ

でなければなりませんここでそのいくつかの小さな小さな違いがなければなりません私は見ていないだけです。どんな助けでも大歓迎です!

+0

あなたは実際にそれらが所属する資産を移動して、それらをアプリケーション/ビューディレクトリに入れないでください –

+0

この単純化された例では少し複雑です。この見解は、資産に密接に結びついていて、物理的にはより意味をなさないものです。 – evets

+0

manifest.coffee.jsをmanifest.js.coffeeにする必要がありますか? –

答えて

85

私はこの全く同じ問題に遭遇しました。私のプロダクションサーバーはHeroku(cedar stack)でした。私の場合は問題がだった私の1もの:

require_tree ./mobile 

が正当なディレクトリを指していたが、このディレクトリはどのファイルがありませんでした。 devには問題はありませんでしたが、プロダクションセットアップに関する何かが "require_tree引数はディレクトリでなければなりません"というエラーを引き起こしていました。

うまくいけば助けてください。

+2

おかげで、あなたは私の一日保存... – bragboy

+1

だから、僕はこれまで、2時間を失ったし、うまくいけば、それは将来的に誰かを助ける。何もしない場合フォルダにHerokuのは、それを作成することはできません。これはgitのではなく、ルビーやレールに問題がある – Will

+11

(あなたはまだそれをしたい場合は、そこに少なくとも.gitkeepを配置する必要があります)。Gitは、ディレクトリが作成されない場合がありますそれにはファイルがありません。あなたのレポをチェックし、私は賭け空のdirsには、そこにありません。 –

17

require_tree既存のフォルダを指定する必要がありますが、あなたはHerokuの上で展開するときgitの店空のフォルダ、 したがって、これらの空のフォルダが存在しませんしません。

1つのトリックは、空の.keepファイルを保存したいフォルダに追加することです。

+0

これは、空のディレクトリは、そのないのgitで生産に存在しない本当の理由です。 – Kris

関連する問題