teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

5

タイトル変更

2020/08/19 00:37

投稿

moshi
moshi

スコア90

title CHANGED
@@ -1,1 +1,1 @@
1
- リバースプロキシの設定でSpringbootのリソースが読み込めない
1
+ Springbootのリソースファイルが読み込めない
body CHANGED
File without changes

4

ブラウザバックしたものを投稿してしまったため内容を修正

2020/08/19 00:37

投稿

moshi
moshi

スコア90

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
- サーバ側の設定(/etc/httpd/conf.d/testserver.conf)
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
- ### 補足情報(FW/ツールのバージョンな
81
+ なたか教えていただければと思います。よろしくお願いします。
35
-
36
- ここにより詳細な情報を記載してください。

3

ソース修正

2020/08/18 15:06

投稿

moshi
moshi

スコア90

title CHANGED
File without changes
body CHANGED
@@ -10,8 +10,8 @@
10
10
 
11
11
  </Location>
12
12
 
13
- ProxyPass /app http://localhost:8888/
13
+ ProxyPass /app http://localhost:8888/
14
- ProxyPassReverse /app http://localhost:8888/
14
+ ProxyPassReverse /app http://localhost:8888/
15
15
  ```
16
16
  としてあり
17
17
  ```

2

ソースの修正をしました。

2020/08/18 14:56

投稿

moshi
moshi

スコア90

title CHANGED
File without changes
body CHANGED
@@ -10,8 +10,8 @@
10
10
 
11
11
  </Location>
12
12
 
13
- ProxyPass /lcpapp http://localhost:8888/
13
+ ProxyPass /app http://localhost:8888/
14
- ProxyPassReverse /lcpapp http://localhost:8888/
14
+ ProxyPassReverse /app http://localhost:8888/
15
15
  ```
16
16
  としてあり
17
17
  ```

1

サーバーの設定を追記しました。

2020/08/18 14:55

投稿

moshi
moshi

スコア90

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
  そのためリソースファイルも