こんにちは。 Railsでファイルをアップロードするときに便利なのが、carrierwaveだと思います。rmagickなどとも組み合わせて使えますしとても便利でよく使います。 ただ、今回デプロイするときにアップロード画像が消えてしまい悲しい思いをしたので書いておきます。 方針としてはshared(共有フォルダ)に入れておいてシンボリックリンクはろうという感じです。 とくに難しいことも何もないです。
想定
* public/uploadsフォルダ以下
* capistrano3
1. Gitから除外
まずはgitの追跡から除外してください。つまり.gitignoreです。
# Ignore uploaded files /public/uploads
すでに追跡されている場合は削除しましょう。
git rm -r --cached public/uploads
2. 共有フォルダの設定
capistranoにおいて、sharedフォルダはデプロイ時に上書きを避けたいフォルダなどをおいておきます。そしてデプロイ時にはshared配下に対してシンボリックリンクを張るという仕組みになっています。
設定方法
set :linked_dirs, %w(public/uploads)
※注意 capistrano2まではこれがshared_childrenという変数でした。ググるとけっこうshared_childrenの記事あるの気をつけてください。
参考
How to get Capistrano to ignore upload directories (Carrierwave) (via @AstonJ)
Capistrano 3への手引き – 今日のごはんは素麺です
投稿者紹介
-
私たちは、テクノロジに魅せられた個性あふれるメンバーによって構成された茨城県日立市に本社を構えるベンチャー企業です。
”テクノロジを通して「驚き」と「感動」を創造し、人々の「夢」と「笑顔」を支えます。” の経営理念をモットーに明るい未来を描き、ワクワクする企画提案を続けて参ります。
最近のエントリ
- レポート2019.10.28ユニキャストレストランを開催しました🍳
- レポート2019.08.29社内研修ワークショップ~マシュマロ・チャレンジ~
- レポート2019.08.06Computex/InnoVEX 出展者・通訳として参加してきました。
- レポート2018.06.12Computex 2018 レポート