0

私は最近、新しいクラウド環境で初めてCapistranoを実装しました。 cap deployを実行すると、すべて正常に動作しているようです。私はブラウザで私のライブアプリケーションを訪問することができますが、私の静的ファイルは非常にゆっくりとロードされるようです(5.0-12.0sのような)。資産パイプライン/静的ファイルが遅い

明確にするために回答をconfig.assets.compileに表示してください。

答えて

1

スタティックファイルは静的ではなく、スクローケットによって配信される可能性があるため、ゆっくりと読み込まれます。

config.assets.compile = trueかどうかを確認し、設定されていないか確認してください。それはスプロケットが仕事をしていることを意味する。遠い将来のヘッダーも使用されています。

/home/my_user/my_app/current/publicをご覧になり、assetsが存在するかどうかを確認してください。私はそうは思わない。

これは、mkdir -pが機能していないことを意味します。最も可能性が高い原因は、展開ユーザーにディレクトリを作成するための十分な権限がないことです。

これを修正し、コンフィグレーションの設定がパイプラインガイドのlast sectionの設定と一致することを確認します(3.0以前のアップグレードされたアプリケーションの場合)。

+0

ありがとうございました。私は、「プリコンパイルされた資産が見逃された場合、資産パイプラインにフォールバックしないでください」というコメントを誤解していることがわかります。 'config.assets.compile = true'の場合は、プリコンパイルされていても実行時にコンパイルされます。 –

+0

'cap deploy'に関しては、資産は正常にコンパイルされています。アセットフォルダを手動で削除してから、もう一度 'cap deploy 'を実行すると再び表示されます。 sshを(同じユーザーとして)実行してmkdir -p/...コマンドを実行すると、アクセス権の問題は発生しません。これは私がdeploy.rbで逃したものですか? –

+0

compileがtrueの場合、Sprocketsは 'public/assets'に存在しないアセットの要求を処理します(デフォルトはfalse)。 falseの場合、アプリは不足している資産について404を返します。 Capfileに標準のデプロイスクリプト( 'load 'deploy/assets''を含む)を使用していますか? –

関連する問題