4

Node.js サーバーで az ExtJS アプリケーションを作成しようとしています。私のサーバーコードは現在次のようになっています。

var express = require('express');

var app = express();

app.get('/', function (req, res) {
    res.sendfile(filedir + '/index.html');
});

app.get('/employees', function(req, res){
console.log("hello");
});

app.listen(3000);

ブラウザで localhost:3000 を開くと、html ファイルはロードされますが、正しくロードされません。firebug をチェックインすると、リンクされたファイルが html で見つからないことがわかります。例えば

"NetworkError: 404 Not Found - http://localhost:3000/ext-4/ext-debug.js".

ファイルがその URL に存在しないため、これは非常に論理的です。私の質問は、この問題を修正する方法です。ファイルシステム上のすべてのリンクされたファイルを見つけることができます。

私は明らかに何か間違ったことをしている、または何かが欠けています。私はノードでまったく新しいです。

4

2 に答える 2

5

Express の静的ファイル ハンドラを構成しているようには見えません。

このコードを追加してみてください:

app.configure(function() {
    app.use(express.static(path.join(__dirname, 'public')));
    app.use(express.bodyParser());
    app.use(express.logger("short"));
});

var app = ...次のようになります。

var express = require('express');

var app = express();
app.configure(function() {
    app.use(express.static(path.join(__dirname, 'public')));
    app.use(express.bodyParser());
    app.use(express.logger("short"));
});

app.get('/', function (req, res) {
    res.sendfile(filedir + '/index.html');
});

app.get('/employees', function(req, res){
    console.log("hello");
});

app.listen(3000);

次に、静的ファイルを./publicディレクトリの下に配置します。

于 2013-04-13T22:28:13.453 に答える
3

http://www.senchalabs.org/connect/static.htmlのようないくつかの静的ミドルウェアを使用する必要があります。

Express は connect を継承することに注意してください。

app.use(express.static(filedir));

または完全なもの:

var express = require('express');

var app = express();

app.use(express.static(filedir));

app.get('/employees', function(req, res){
  console.log("hello");
  res.send("hello");
});

app.listen(3000);
于 2013-04-13T22:26:27.867 に答える