HonoでStaticAssets設定するときの注意点
Satoshi Nitawaki
1 min read
honoで Serve static files を参照して設定していたところ、少しハマっていたのでメモ。
// /src/index.ts
const app = new Hono().basePath("/api");
app.use("/static/*", serveStatic({ root: "./" }));
├── src
│ ├── domain
│ ├── infrastructure
│ ├── routes
│ └── use-case
└── static
└── images
このような状況でstatic/image/file.xxx
がNot Foundになって困っていました。
どうやらbasePath
がstaticPathにも影響するらしく、staticPathのmiddlewareの設定以前にbasePath設定があると影響するようでした。
// /src/index.ts
const app = new Hono();
app.use("/static/*", serveStatic({ root: "./" }));
app.basePath("/api");
このようにmiddleware以降にbasePath設定をすることでstaticPathへのアクセスが適切にできるようになりました。
serveStatic
のrootの対象がどこからなのかわからないこともあって、結構時間が溶けました。。。
ちなみに、
Root path, relative to current working directory from which the app was started. Absolute paths are not supported.
コードのコメント上にある通り、root pathはindex.ts
(ここでいうsrc/
パス)のディレクトリではなく、プロセスの起動しているディレクトリであるproject root pathになるので注意。
0
Subscribe to my newsletter
Read articles from Satoshi Nitawaki directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Satoshi Nitawaki
Satoshi Nitawaki
Photo and tech life https://bento.me/nita