質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Spring Security

Spring Securityは、Springのサブプロジェクトの一つでWebアプリケーションに必要な機能を追加します。正規ユーザーであるかを確認するための「認証機能」と、ユーザーのアクセスを制御する「認可機能」を簡単に追加することが可能です。

JAR

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

1回答

2040閲覧

Spring Boot  jarの外部ファイル(画像など)から取得した

karin_77

総合スコア11

Spring Security

Spring Securityは、Springのサブプロジェクトの一つでWebアプリケーションに必要な機能を追加します。正規ユーザーであるかを確認するための「認証機能」と、ユーザーのアクセスを制御する「認可機能」を簡単に追加することが可能です。

JAR

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2019/06/05 03:40

アプリケーション内で利用する画像ファイルをjarファイルから外部化したいと考えています。

以下のURLの方法でpropertyファイルは外部化できましたが、画像ファイルを読み込んでもらえません。

https://qiita.com/greencoffeemaker/items/18b5bb938dbc5a4e21c0

pom.xml

1<plugin> 2 <groupId>org.apache.maven.plugins</groupId> 3 <artifactId>maven-jar-plugin</artifactId> 4 <configuration> 5  <archive> 6   <manifest> 7    <mainClass>com.XXXXXXXXXX</mainClass> 8    <addClasspath>true</addClasspath> 9   </manifest> 10   <manifestEntries> 11    <Class-Path>./settings/</Class-Path> 12   </manifestEntries> 13  </archive> 14 </configuration> 15</plugin> 16<plugin> 17 <groupId>org.apache.maven.plugins</groupId> 18 <artifactId>maven-antrun-plugin</artifactId> 19 <executions> 20  <execution> 21   <phase>package</phase> 22   <configuration> 23    <target> 24     <!-- コピー: /src/main/resources => /target/settings --> 25     <mkdir dir="${project.build.directory}/settings" /> 26     <copy todir="${project.build.directory}/settings"> 27      <fileset dir="${project.basedir}/src/main/resources" /> 28     </copy> 29    </target> 30   </configuration> 31   <goals> 32    <goal>run</goal> 33   </goals> 34  </execution> 35 </executions> 36</plugin>

プロジェクトのフォルダ構成
src/main/resources
├img ・・・画像フォルダ
├static ・・・js/cssなど
├templates ・・・HTMLファイル
└application.properties

ビルド後のフォルダ構成
target
├XXXX.jar
├settings
├img
├static
├templates
└application.properties

これで、Controllerからpropertyは取得できましたが、Thymeleaf内の画像を取得できません。

HTML

1<img class="img-fluid d-block" src="img/logo.png">

404エラーとなり、http://〜/settings/img/logo.pngでも404エラーでした。
この場合、フォルダ構成がおかしいのでしょうか。

ご教示いただきたくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

imgディレクトリをstaticディレクトリに入れたうえで下記のような書き方になるのでは。

Tymeleaf

1<img class="img-fluid d-block" th:src="@{/img/logo.png}">

投稿2019/06/05 04:03

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

karin_77

2019/06/05 04:15

ありがとうございます! しょうもないことでしたが、できました。 助かりました!!
m.ts10806

2019/06/05 04:26

解決されたようで何よりです。 お作法的なところだと思うので、あまりしょうもないとは思いませんけど・・
karin_77

2019/06/05 04:40 編集

あ、すみません。。 上記について追記がありまして、この「img」フォルダには今後マスター画像が追加されていく予定です。 その際に、 ビルド後のフォルダ構成 target ├XXXX.jar ├settings ├static      └img ← このフォルダに画像を追加していきたい ├templates └application.properties 試しにビルド後にpngファイルを置いて、直接アクセスしてみましたが見れませんでした。 http:// 〜 /img/XX.png 404エラー こういう使い方はできないのでしょうか・・・。
m.ts10806

2019/06/05 04:51

はい。ブラウザの「ソースを表示」で確認してみると分かりますが、URLにプロジェクト名は挟みます。 ドキュメントルートですとかそのあたりの考え方になるので、 下記のような記事が参考になると思います。 https://qiita.com/kazuki43zoo/items/e12a72d4ac4de418ee37
karin_77

2019/06/05 05:41

>はい。ブラウザの「ソースを表示」で確認してみると分かりますが、URLにプロジェクト名は挟みます。 これはどういうことでしょうか? <manifestEntries> <Class-Path>./settings/</Class-Path> </manifestEntries> →これでClassPassを設定しているのですが、jarファイルの外にあるファイルはこのClassPassが利用されていないということですか? それとも、<img src="">には、単純に以下では無理で他のパスが必要ということでしょうか。。  img/xx.png
m.ts10806

2019/06/05 05:45

話が少しずつ広がっていっていますし、既にいったん解決になっているので、別質問にされてはと。
karin_77

2019/06/05 06:01

そうします。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問