@javaboy
Revisions
Report this question
Subscribe question
Help us understand the problem. What is going on with this question?
Q&A
Closed

Spring frameworkで実行中に静的リソースを追加

Q&A
Closed

解決したいこと

Kotlin(Javaをより簡単に記述できるトランスパイル言語)とspringを使って、webアプリケーションを作っています。そこで、実行中に静的リソースに画像を追加できるようにしたいのですが、再起動しないとアクセスできません。再起動せずにアクセスする方法を教えてください。

発生している問題・エラー

実行中に追加した静的リソースを読み込むと404 Not foundが発生します。

追記

今回、springのコントローラーから、formで送れれた画像を使用しようとしています。環境は、下記に記しておきますが、ideで動かすのではなく、jarを出力して動かそうと思っています。

項目 内容
OS mac
IDE IntelliJ IDEA(無償版)
ビルドツール Gradle(Kotlin)
0
1
Answer

結果再起動にはなりますが、spring-boot-devtools使えば実現できないでしょうか?
試してみてください。

[参考]
https://spring.pleiades.io/spring-boot/docs/current/reference/html/using-spring-boot.html#using-boot-devtools

1
spring-boot-devtoolsはすでに入れてあります。
しかし、あまり機能がわかっていないまま入れています。
どのように今回の件について役立つのか、教えていただけませんか。
spring-boot-devtoolsを入れると自動再起動が出来るようになります。なので、わざわざ自分で再起動しなくても勝手に反映してくれるようになります。

ただ、spring-boot-devtoolsは環境によっては入れるだけではなく別で設定が必要になるようです。環境について書いていただければこちらで設定手順を教えることが出来るかと思います。
ありがとうございます。環境を載せておきます

| 項目 | 内容 |
|:-----------|:------------|
| OS | mac |
| IDE | IntelliJ IDEA(無償版) |
|ビルドツール | Gradle(Kotlin)|
https://bsblog.casareal.co.jp/archives/2953

こちらのブログで紹介されている手順で自動再起動設定できましたので、参照してみてください。
画像入れてrenameという形としましたが、再起動せずにURLが変更されるのまでは確認しました。

あと、これを確認している途中で知ったのですが、Spring BootのConsoleを表示している箇所をアクティブにしてCtrl + rで再起動されましたので、上手くいかなかったらこれで代用するのも良いかもしれません(一通り自動再起動設定後にしか試してませんので、設定前の状態で行えるかはわかりません)
わざわざ検証までしていただきありがとうございます。

教えていただいた記事ではIntelliJでファイルを追加しておりますが、実際にはspringのコントローラーで静的ファイル(formで送られた画像)を追加しようとしていたのです。質問の内容にそこまで書いていなくてすみません。やはりdata urlを使わないといけませんか。
ファイルアップロードしてその画像を参照したいとのことで認識合っていますか?

それでしたらstatic配下ではなく別フォルダを指定してそこにアップロードする仕組みにした方が良いかと思います。開発環境だけなら問題ありませんが、jarにした際にアップロードする場所がなく上手く行きません。

実装方法は以下の記事を参考にしてみてください。
ファイルアップロード機能はありそうな感じがしたため、そのファイルを簡単に参照するための方法です。
ファイルアップロードした画像を見れるユーザーを限定したいみたいな要求があるのであれば使えない方法です。その場合は自分で画像取得用のControllerを自分で作るしかないです。


https://qiita.com/dumbbell/items/afe8050b69c00cf91c6f

ここのaddResourceLocationsは絶対パスも書けますので、ここをプロパティからフォルダ指定できるようにしておけばどの環境でも良い感じで動かせるようになると思いますので、試してみてください。
View the remaining 5 comments.
Help us understand the problem. What is going on with this answer?
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした