回答:
追加の(最初の)パラメーターを次のuse()
ように指定して、静的ファイルがWebに提供されるパスを設定することもできます。
app.use("/public", express.static(__dirname + "/public"));
app.use("/public2", express.static(__dirname + "/public2"));
これにより、ローカルディレクトリをミラーリングする2つの異なるディレクトリがWeb上に取得されます。2つのローカルディレクトリ間でフェイルオーバーする1つのURLパスではありません。
つまり、URLパターン:
http://your.server.com/public/*
ローカルディレクトリからファイルを提供しますpublic
。
http://your.server.com/public2/*
ローカルディレクトリからファイルを提供しますpublic2
。
ところで、これは、サーバーのルートからではなく、より限定されたパスからファイルを静的に提供したくない場合にも役立ちます。
HTH
"homepage": "/public"
と"homepage": "/public2"
、それぞれのアプリのpackage.jsonを反応させます。2つの反応アプリの使用の詳細については、こちらの私の回答をご覧ください。stackoverflow.com
shared
フォルダを使用できるように"./"
と"./shared"
、あなたがすることができます簡単に共有のjsファイルをブーム:3ありがとうございました
ディレクトリを単一の可視ディレクトリに「マージ」することもできます
ディレクトリ構造
/static
/alternate_static
コード
app.use("/static", express.static(__dirname + "/static"));
app.use("/static", express.static(__dirname + "/alternate_static"));
staticとalternate_staticの両方が、同じディレクトリにあるかのように提供されます。ただし、ファイル名の破損には注意してください。
main.js
にはstatic/
それに見ていきませんalternate_static/
。
alternate_static
されることを期待していたならば、それはまだ雑談です。
1回のミドルウェアインジェクションでは不可能ですが、static
ミドルウェアを複数回インジェクトできます。
app.configure('development', function(){
app.use(express.static(__dirname + '/public1'));
app.use(express.static(__dirname + '/public2'));
});
説明
connect / lib / middleware / static.js#143を見てください。
path = normalize(join(root, path));
ありoptions.root
ますが、中に定義し、静的ルート、であるexpress.static
か、connect.static
呼び出しがあり、path
リクエストパスです。
connect / lib / middleware / static.js#154をもっと見てください:
fs.stat(path, function(err, stat){
// ignore ENOENT
if (err) {
if (fn) return fn(err);
return ('ENOENT' == err.code || 'ENAMETOOLONG' == err.code)
? next()
: next(err);
パスは1回だけチェックされ、ファイルが見つからない場合、リクエストは次のミドルウェアに渡されます。
Connect 2.xのアップデート
Connect 2.xのコードへのリンクは実際的ではありませんが、以前と同様に、複数の静的ミドルウェアの使用が可能です。
const express = require('express');
const path = require('path');
const pagesPath = path.join(__dirname, '/cheatsheet');
const cssPath = path.join(__dirname, '/stylesheet');
const port = process.env.PORT || 3000;
var app = express();
app.use("/cheatsheet" ,express.static(pagesPath));
app.use("/stylesheet",express.static(cssPath));
app.get('/',(request,response)=>{
response.send('Hello CSS!!!');
});
app.get('/bad',(request,response)=>{
response.send({error: 'Bad Request'});
});
app.listen(port, ()=> {
console.log(`Server is running on Port ${port}` );
console.log(__dirname);
});
// folder structure
/cheatsheet/index.html
/stylesheet/style.css