質問編集履歴
5
タイトル変更
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
Springbootのリソースファイルが読み込めない
|
body
CHANGED
File without changes
|
4
ブラウザバックしたものを投稿してしまったため内容を修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
|
+
Springboot + ThymeleafでWebアプリケーションを実行したいがリソースの読み込みとサーブレットパスのマッピングがうまくできない
|
2
3
|
|
4
|
+
|
5
|
+
### 発生している問題・エラーメッセージ
|
3
6
|
Spring bootアプリケーションをサーバー上に公開したのですが
|
4
|
-
サーバ
|
7
|
+
例えば現在のサーバ側の設定(/etc/httpd/conf.d/testserver.conf)が
|
5
8
|
```
|
6
9
|
<Location /app>
|
7
10
|
|
@@ -13,10 +16,16 @@
|
|
13
16
|
ProxyPass /app http://localhost:8888/
|
14
17
|
ProxyPassReverse /app http://localhost:8888/
|
15
18
|
```
|
19
|
+
|
20
|
+
・サーバー側の設定(リバースプロキシの設定)で/appでアプリケーションが動作する
|
16
|
-
とし
|
21
|
+
という状態だとします。
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
ログイン画面を表示するアプリケーションは
|
17
26
|
```
|
18
|
-
https://testserver.jp/app
|
27
|
+
https://testserver.jp/app/login
|
19
|
-
```で
|
28
|
+
```で動作するようになっています。
|
20
29
|
そのためリソースファイルも
|
21
30
|
```
|
22
31
|
https://testserver.jp/app/images/test.png
|
@@ -28,9 +37,45 @@
|
|
28
37
|
```
|
29
38
|
を読み込みに行ってエラーとなっているようです。
|
30
39
|
|
40
|
+
サーブレットパスについても同じで、ログインボタンを押した際の遷移先に
|
41
|
+
```
|
42
|
+
@{/auth}
|
43
|
+
```
|
44
|
+
を設定しているのですが
|
45
|
+
```
|
46
|
+
https://testserver.jp/auth
|
47
|
+
```
|
48
|
+
となってしまいうまく遷移できません。
|
49
|
+
|
31
50
|
### 試したこと
|
51
|
+
Springbootのapprication.propertiesにコンテキストパスの設定を行いました。
|
52
|
+
```
|
53
|
+
server.servlet.context-path=/app
|
54
|
+
```
|
32
55
|
|
56
|
+
すると、リソースファイルは
|
57
|
+
```
|
58
|
+
https://testserver.jp/app/images/test.png
|
59
|
+
```
|
60
|
+
に配置されるようにはなったのですが、今度はログイン画面を表示するパスが
|
61
|
+
ホスト(https://testserver.jp) + サーバー側の設定(/app) + コンテキストパスの設定(/app)で
|
62
|
+
```
|
63
|
+
https://testserver.jp/app/app/login
|
64
|
+
```
|
65
|
+
となってしまい、結局アプリケーションが動いているところと各リソースのある場所がマッチしていないという状態になっています。
|
66
|
+
サーブレットパスのマッピングも同様で
|
67
|
+
```
|
68
|
+
@GetMapping("/login")
|
69
|
+
public String hello(Model model) {
|
70
|
+
return "login";
|
71
|
+
}
|
72
|
+
```
|
73
|
+
としているため
|
74
|
+
```
|
75
|
+
https://testserver.jp/app/login
|
76
|
+
```
|
77
|
+
を見に行ってしまい、うまく動作しないという状態になっています。
|
33
78
|
|
79
|
+
どうすれば解決するでしょうか?
|
80
|
+
Springboot側をいじればいいのかサーバー側の設定を変えれば何とかなるのかなどもわからない状態です。
|
34
|
-
|
81
|
+
どなたか教えていただければと思います。よろしくお願いします。
|
35
|
-
|
36
|
-
ここにより詳細な情報を記載してください。
|
3
ソース修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,8 +10,8 @@
|
|
10
10
|
|
11
11
|
</Location>
|
12
12
|
|
13
|
-
ProxyPass /app
|
13
|
+
ProxyPass /app http://localhost:8888/
|
14
|
-
ProxyPassReverse /app
|
14
|
+
ProxyPassReverse /app http://localhost:8888/
|
15
15
|
```
|
16
16
|
としてあり
|
17
17
|
```
|
2
ソースの修正をしました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,8 +10,8 @@
|
|
10
10
|
|
11
11
|
</Location>
|
12
12
|
|
13
|
-
ProxyPass /
|
13
|
+
ProxyPass /app http://localhost:8888/
|
14
|
-
ProxyPassReverse /
|
14
|
+
ProxyPassReverse /app http://localhost:8888/
|
15
15
|
```
|
16
16
|
としてあり
|
17
17
|
```
|
1
サーバーの設定を追記しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,8 +1,20 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
3
|
Spring bootアプリケーションをサーバー上に公開したのですが
|
4
|
-
サーバー側の設定で
|
4
|
+
サーバー側の設定(/etc/httpd/conf.d/testserver.conf)で
|
5
5
|
```
|
6
|
+
<Location /app>
|
7
|
+
|
8
|
+
ProxyPass http://localhost:8888/
|
9
|
+
ProxyPassReverse http://localhost:8888/
|
10
|
+
|
11
|
+
</Location>
|
12
|
+
|
13
|
+
ProxyPass /lcpapp http://localhost:8888/
|
14
|
+
ProxyPassReverse /lcpapp http://localhost:8888/
|
15
|
+
```
|
16
|
+
としてあり
|
17
|
+
```
|
6
18
|
https://testserver.jp/app
|
7
19
|
```でアプリケーションが動作するようになっています。
|
8
20
|
そのためリソースファイルも
|