Expressで静的ファイルを提供
イメージ(画像)、CSS ファイル、JavaScript ファイルなどの静的ファイルを提供する
には、Express に標準実装されている express.static ミドルウェア関数を使うことにな
ります。
構文から見てみましょう。
ディレクトリ名から上記の静的ファイルを提供したいと教えることが可能です。
実際にサンプルを書いてみます。
index.js
太文字の「app.use(express.static('public'));」部分ですね。
今回のディレクトリ名は「public」として、cssファイルを作成しておきます。
app.css
このように記述することで、
背景色が変わっています。
もし、別のディレクトリから Express アプリケーションを実行する場合は、
express.static 関数に指定するパスは、node プロセスを起動するディレクトリに対し
て相対的なため、提供するディレクトリの絶対パスを使用することが必要です。
その場合は下記のように記述します。
絶対パスが手に入り、階層が上がっても実行可能となります。
実は、index.jsの6行目の「app.set('views', path.join(__dirname, 'views'));」も同じ
ような仕様です。
元々、Expressでは「viewsディレクトリ」にあるテンプレートを探しに行きます。
なのでviewsディレクトリでも、「path.join(__dirname, 〜」のように記述すれば、静
的ファイルの提供と同様に、絶対パスが手に入り、階層が上がっても実行可能となりま
す。
静的ファイルの時だけ「express.static」を使うので、viewsディレクトリでは使わないようにしてください。