Skip to content

Instantly share code, notes, and snippets.

@JunichiIto
Last active March 26, 2023 23:31
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JunichiIto/6de1c209b9873f8bb332be7abc20a459 to your computer and use it in GitHub Desktop.
Save JunichiIto/6de1c209b9873f8bb332be7abc20a459 to your computer and use it in GitHub Desktop.
How to show images in fly.io

fly.ioで画像を表示する

サンプルアプリ

https://rails-assets-sandbox.fly.dev/

Screenshot 2023-03-11 at 16 30 23

GitHubリポジトリ

https://github.com/JunichiIto/fly-io-sandbox

作成手順

1. Getting Started · Fly Docs の手順にしたがってアプリを作成する

2. dartsass-railsをインストール

  • READMEの手順通りに実行
    • ./bin/bundle add dartsass-rails
    • ./bin/rails dartsass:install

3. 画面に画像を表示する

  • 画像を2件追加
    • app/assets/images/bg.png
    • app/assets/images/bread.jpg
  • app/views/layouts/application.html.erb に以下のタグを追加
  <div class="my-image">
    <%= image_tag 'bread.jpg' %>
  </div>
  • app/assets/stylesheets/my_app.scss を追加
  • 最新のdartssass-railsではimage-urlasset-urlを使わずにurlを使えば良いとのこと(参考)。
.my-image {
  background-image: url('bg.png');
  display: inline-block;
  padding: 50px;
  img {
    border: 1px solid #ccc;
  }
}
  • app/assets/stylesheets/application.css に追加したCSSをapp/assets/stylesheets/names.scssに移動して、application.cssを削除
// app/assets/stylesheets/names.scss
#names {
  display: grid;
  grid-template-columns: 1fr max-content;
  margin: 1em;
}

#names strong {
  display: none;
}

#names p {
  margin: 0.2em;
}
  • app/assets/stylesheets/application.scss でnames.scssとmy_app.scssをimport
// app/assets/stylesheets/application.scss
@import 'names';
@import 'my_app';

4. ローカルで動作確認

  • bin/devコマンドで起動
  • 背景画像とパンの画像が表示されることを確認

Screenshot 2023-03-11 at 16 29 08

5. fly.io にデプロイ&動作確認

Screenshot 2023-03-11 at 16 30 23

参考:step2〜5のdiff

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment