2021年8月30日現場Rails Chapter6-9-2 静的ファイルのサーバーを設定する 秘密情報の管理
assets配下のファイルは動的ファイルとして扱われ、アセットパイプラインを通して静的なファイルへとコンパイルされ、publicディレクトリの配下に生成されます。
404や500のエラーページは、もともと静的ファイルとしてpublic配下に置かれています。アセットパイプラインでは、動画コンテンツを読み込まないので、動画はpublic配下に設置します。
Railsのコントローラーのアクションを通じて、viewを表示する場合、全て、動的ページになります。コントローラーのアクションで処理されて作られるコンテンツが動的ページです。
例)見た目上では、同じ"Hello World"と表示されているページでも毎回コントローラのアクションが同じ動的ページを毎回作って配信しているイメージです。
対して、アクションを経由せず、直接webサーバーから受け取るコンテンツは静的ページになります。そのため、public配下に静的ページを設置しておく必要があります。 publicに配置されているものは、静的ページと捉えて良いです。
静的とは、ボールを投げたら壁に当たって跳ね返ってくる様子で、動的のイメージはキャッチボールのイメージです。
秘密情報の管理
秘密情報はRails5.2からCredentialsという仕組みで管理されています。
管理したい秘密情報はyaml形式で記述しcredentials.yml.encの形で管理されます。それにアクセスするための鍵となるのがmaster.keyです。 これらはrails newしたタイミングで自動生成されます。
production環境用の秘密情報はcredentials.yml.encに常に暗号化された状態で保存されます。 master.keyファイルか環境変数であるRAILS_MASTER_KEYからキー情報を取り出して秘密情報を復号して利用します。 暗号化された内容はコマンドを実行して閲覧したり、編集することが出来ます。
master.keyはrailsアプリ作成時に「.gitignore」ファイルに記述済みとなっています。「.gitignore」ファイルに、Githubにアップロードしたくないファイルの名前を書くことで、Githubにアップロードされません。「ignore」は英単語で「無視する」という意味なので、「.gitignore」ファイルがこのような機能になります。
参考
Rails5.2から追加された credentials.yml.enc のキホン https://qiita.com/NaokiIshimura/items/2a179f2ab910992c4d39