2

を実行すると、「scp 経由のアップロードに失敗しました」というエラーが表示cap deployされ、次の出力が表示されます。

  * executing `deploy:assets:update_asset_mtimes'
...
 ** Updating mtimes for ~8 assets...
 ** scp upload #<StringIO:0x007fca13a94f40> -> /apps/my_app/TOUCH_ASSETS
*** upload via scp failed on <ip>:
*** (
*** )
*** [deploy:update_code] rolling back

を実行したところcap deploy:cold、エラーはありませんでした。

このエラーの原因とデバッグ方法を教えてください。

4

3 に答える 3

0

入力ミスなど、アセット マニフェスト ファイルの形式が正しくない可能性があります。プロジェクト内の次のマニフェスト ファイルを調べて、すべてを再確認してください。

app/assets/javascripts/application.js
app/assets/stylesheets/application.css

他のカスタム マニフェスト ファイルがある場合は、それらも確認してください。 ここの例を見て、フォーマットが正しいことを確認してください。

于 2013-07-18T17:40:30.883 に答える
0

次のように、アセットをローカルでコンパイルしてから、rsync 経由でアップロードしてみてください

namespace :deploy do
  namespace :assets do
    desc "Precompile assets on local machine and upload them to the server."
    task :precompile, roles: :web, except: {no_release: true} do
      run_locally "bundle exec rake assets:precompile"
      find_servers_for_task(current_task).each do |server|
        run_locally "rsync -vr --exclude='.DS_Store' public/assets #{user}@#{server.host}:#{shared_path}/"
      end
    end
  end
end
于 2013-07-30T14:18:30.277 に答える