Active StorageのダウンロードURLを変更する[/rails/active_storage/blobs]
RailsのActive Storageでダウンロードリンクを作成するには「rails_blob_path」があります。通常に使用する分には問題ありませんが、Nginxのlocationなどでパスを切り分けている場合はダウンロードリンクを作成しても、404エラーでダウンロードできない状態になります。
Active Storageコントローラーのパスを変更する方法をご紹介します。
対策前
Railsアプリのパス
https://www.petitmonte.com/rails-demo/
rails_blob_pathが生成するダウンロードリンク
https://www.petitmonte.com/rails/active_storage/blobs/*
Nginxの設定 ※Unixドメインソケットを使用しない方法
server { listen 443 ssl; server_name www.petitmonte.com; *** 省略 *** location /rails-demo { try_files $uri @rails_demo_app; } location @rails_demo_app { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://localhost:3000; } }
解決方法
config/application.rbに次を記述するだけです。
config.active_storage.routes_prefix = '/rails-demo'
/rails-demoの部分は各自の環境に変更して下さい。
最終的にダウンロードリンクは次のようになります。
https://www.petitmonte.com/rails-demo/blobs/*
※config.active_storage.routes_prefixはRails6以上が必要です。
スポンサーリンク
関連記事
- Ruby on Rails 6.xから7.0.xへアップグレード [エラー解決/移行ガイド]
- Vuexの使い方 [Rails]
- Rails6のプロジェクト作成時の「RAILS_ENV=development environment is not defined in config/webpacker.yml, falling back to production environment」のエラー対策
- Rails + JQuery + AjaxでCRUDのサンプルプロジェクト [Hello World]
- タイトル/メタタグ(keywords,description)をページ毎に変更する [Ruby on Rails]
公開日:2019年12月21日
記事NO:02813
この記事を書いた人
![]() | 💻 ITスキル・経験 サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。 画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ |
プチモンテ代表、アーティスト名:プチモンテ | |
🎵 音楽制作 BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は叙情詩、叙情的な楽曲が多い。楽曲制作は2023年12月中旬 ~ |
オリジナル曲を始めました✨
YouTubeで各楽曲を公開しています🌈
https://www.youtube.com/@petitmonte