私は最近、新しいクラウド環境で初めてCapistranoを実装しました。 cap deploy
を実行すると、すべて正常に動作しているようです。私はブラウザで私のライブアプリケーションを訪問することができますが、私の静的ファイルは非常にゆっくりとロードされるようです(5.0-12.0sのような)。資産パイプライン/静的ファイルが遅い
明確にするために回答をconfig.assets.compile
に表示してください。
私は最近、新しいクラウド環境で初めてCapistranoを実装しました。 cap deploy
を実行すると、すべて正常に動作しているようです。私はブラウザで私のライブアプリケーションを訪問することができますが、私の静的ファイルは非常にゆっくりとロードされるようです(5.0-12.0sのような)。資産パイプライン/静的ファイルが遅い
明確にするために回答をconfig.assets.compile
に表示してください。
スタティックファイルは静的ではなく、スクローケットによって配信される可能性があるため、ゆっくりと読み込まれます。
config.assets.compile = true
かどうかを確認し、設定されていないか確認してください。それはスプロケットが仕事をしていることを意味する。遠い将来のヘッダーも使用されています。
/home/my_user/my_app/current/public
をご覧になり、assets
が存在するかどうかを確認してください。私はそうは思わない。
これは、mkdir -p
が機能していないことを意味します。最も可能性が高い原因は、展開ユーザーにディレクトリを作成するための十分な権限がないことです。
これを修正し、コンフィグレーションの設定がパイプラインガイドのlast sectionの設定と一致することを確認します(3.0以前のアップグレードされたアプリケーションの場合)。
ありがとうございました。私は、「プリコンパイルされた資産が見逃された場合、資産パイプラインにフォールバックしないでください」というコメントを誤解していることがわかります。 'config.assets.compile = true'の場合は、プリコンパイルされていても実行時にコンパイルされます。 –
'cap deploy'に関しては、資産は正常にコンパイルされています。アセットフォルダを手動で削除してから、もう一度 'cap deploy 'を実行すると再び表示されます。 sshを(同じユーザーとして)実行してmkdir -p/...コマンドを実行すると、アクセス権の問題は発生しません。これは私がdeploy.rbで逃したものですか? –
compileがtrueの場合、Sprocketsは 'public/assets'に存在しないアセットの要求を処理します(デフォルトはfalse)。 falseの場合、アプリは不足している資産について404を返します。 Capfileに標準のデプロイスクリプト( 'load 'deploy/assets''を含む)を使用していますか? –