かんがるーさんの日記

最近自分が興味をもったものを調べた時の手順等を書いています。今は Spring Boot をいじっています。

Spring Boot + npm + Geb で入力フォームを作ってテストする ( その92 )( http-proxy-middleware の createProxyMiddleware 関数の引数 context には Proxy させない URI を後に書く )

概要

記事一覧はこちらです。

Spring Boot + npm + Geb で入力フォームを作ってテストする ( その91 )( Doma 2 を 2.28.0 → 2.34.0 へバージョンアップする+domaGen タスクを doma-codegen-plugin を利用したものに作り直す ) の続きです。

参照したサイト・書籍

目次

  1. 今の記述だと Proxy させない URI も Proxy されてしまう
  2. createProxyMiddleware 関数の引数 context に Proxy させない URI を後に記述するよう修正する

手順

今の記述だと Proxy させない URI も Proxy されてしまう

bs-springboot-config.js の createProxyMiddleware 関数の記述は現在以下のように Proxy させない URI を先に、Proxy させる URI を後に記述していますが、

const {createProxyMiddleware} = require("http-proxy-middleware");
const proxy = createProxyMiddleware(
  [
    // /css, /js, /vendor と *.html は Tomcat に転送しない
    "!/css/**/*",
    "!/js/**/*",
    "!/vendor/**/*",
    "!/**/*.html",
    "/**/*"
  ],
  {target: "http://localhost:8080"}
);

..........

npm run browser-sync:springboot コマンドを実行して Browsersync だけ起動した後(Tomcat は起動しません)、

f:id:ksby:20200621172846p:plain

http://localhost:9080/css/common.css にアクセスすると "!/css/**/*" の設定により Proxy されず /css/common.css が取得できると思っていましたが、Error occured while trying to proxy to: localhost:9080/css/common.css のエラーメッセージが表示されます。

f:id:ksby:20200621173048p:plain

Browsersync から Tomcat に Proxy しようとして Tomcat にアクセスできないのでエラーになっているようです。

createProxyMiddleware 関数の引数 context に Proxy させない URI を後に記述するよう修正する

この問題は "/**/*" の記述を一番最初にすることで解決できました。

bs-springboot-config.js を以下のように修正し、

const {createProxyMiddleware} = require("http-proxy-middleware");
const proxy = createProxyMiddleware(
  [
    // /css, /js, /vendor と *.html は Tomcat に転送しない
    "/**/*",
    "!/css/**/*",
    "!/js/**/*",
    "!/vendor/**/*",
    "!/**/*.html"
  ],
  {target: "http://localhost:8080"}
);

Browsersync を再起動してから http://localhost:9080/css/common.css にアクセスすると、今度は /css/common.css の内容が返ってきました。

f:id:ksby:20200621173935p:plain

Tomcat を起動して http://localhost:8080/inquiry/input/01 にアクセスすると入力画面1も表示されたので、問題ないようです。

f:id:ksby:20200621174923p:plain

履歴

2020/06/21
初版発行。