expressの静的ファイル設定を勘違いしていた

express.staticの使い方について

expressの静的ファイルを提供するためのexpress.static ミドルウェア関数の使い方を勘違いしていました。具体的にはパスの認識を間違えていました。

var express = require('express'),
    app = express();

app.use(express.static('public'));

例えばこの記述で”public”を静的アセットファイルを格納しているディレクトリとすると

/public/hoge.css
/public/huga/hogehoge.js

でアクセスできると勘違いしておりました。引数に渡したディレクトリはパスには含まれないんですね。この勘違いで少し悩んでいたのですが。公式のガイドを読めばすぐにわかることでした。

上記のパスでアクセスする場合は

app.use('/public', express.static('public'));

このようにパス指定しなければいけませんでした。

参考

Express での静的ファイルの提供