0

エクスプレスでは、次のようなものを使用して、ディレクトリインデックスページを備えた静的サーバーを作成できます。

app.configure(function() {
    app.use('/mystuff', _express.static(__dirname + "/whatever/stuff"));
    app.use('/mystuff', _express.directory(__dirname + "/whatever/stuff"));
});

ディレクトリインデックスページを変更したいのですが、それらに異なるcssを与え、javascriptを追加し、おそらくhtmlを変更します。可能であれば既存の機能をできるだけ多く使用することを好みますが、ディレクトリミドルウェア全体を自分のコードに置き換えるのが簡単な場合は、それがオプションです。これからどこから始めればよいかわからない。もちろん、エクスプレスモジュールや接続モジュールのコードを実際に編集したくはありません。

ところで、これの理由の1つは、ここで説明したバグを回避することです。Expressで任意の開始パスを使用して静的サービングを設定するにはどうすればよいですか。

4

1 に答える 1

1

コメントで述べたように、機能はConnectミドルウェアexpress.directoryに由来します。ただし、カスタムファイルを設定する方法はないようです。

別の解決策として、Connectをフォークし、ファイル(lib/public/directory.htmlとにあるlib/public/style.css)を変更し、フォークを依存関係として使用して、次のことを行うことができます。

var connect = require('connect');

app.configure(function() {
    app.use('/mystuff', connect.static(__dirname + "/whatever/stuff"));
    app.use('/mystuff', connect.directory(__dirname + "/whatever/stuff"));
});

エクスプレスのものの代わりに。これを(node_moduleのファイルを編集して)テストしたところ、機能しました。

編集:directory.js実際には、接続から 取得して変更し、アプリとアプリに配置しrequire()て、代わりに使用することができます。私はこれをテストしていませんが、なぜそれが機能しないのかわかりません。

于 2012-11-01T19:54:41.433 に答える