次のようなconnect
を使用して、いくつかの静的Webページの提供を開始しようとしています。
var connect = require("connect");
var nowjs = require("now");
var io = require("socket.io");
var app = connect.createServer(
connect.static(__dirname + '/public')
);
app.listen(8180);
したがって、index.html
ファイルと同じディレクトリの/public
ディレクトリに単純なapp.js
を追加しましたが、ブラウザでページを表示しようとすると、ノードから次の応答が返されます。
取得することはできません /
私が間違っていることと、それを修正する方法は?
このコードは動作するはずです:
var connect = require("connect");
var app = connect.createServer().use(connect.static(__dirname + '/public'));
app.listen(8180);
また、connect 2.0では.createServer()メソッドは廃止されました。代わりにconnect()を使用してください。
var connect = require("connect");
var app = connect().use(connect.static(__dirname + '/public'));
app.listen(8180);
Apress PRO AngularJS
本を読んでいるので、ここにいるかもしれません...
KnarfaLingus
による この質問 へのコメントで説明されているように:
[見積もりを開始]
接続モジュールが再編成されました。行う:
npm install connect
および
npm install serve-static
その後、server.js
は次のように記述できます。
var connect = require('connect');
var serveStatic = require('serve-static');
var app = connect();
app.use(serveStatic('../angularjs'));
app.listen(5000);
[見積り終了]
本が示唆するように、私はそれを次のようなより簡潔な方法で行います:
var connect = require('connect');
var serveStatic = require('serve-static');
connect().use(
serveStatic("../angularjs")
).listen(5000);
取得しようとしているページを指定しない場合、つまりURLがCannot GET /
のような場合、メッセージhttp://localhost:8180
が表示されます。必ずページ名を入力してください。 http://localhost:8180/index.html
。
同じ問題があった。上記のように解決されました。
私のindex.jsで
var port = 1338,
express = require('express'),
app = express().use(express.static(__dirname + '/')),
http = require('http').Server(app),
io = require('socket.io')(http);
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
console.log('a user connected');
});
http.listen(port, function(){
console.log("Node server listening on port " + port);
});
そして、私のindex.htmlで
<!doctype html>
<html>
<head>
<title>
My page
</title>
</head>
<body>
<script src = "lib/socket.io.js"></script>
<script src = "lib/three.js"></script>
<script>
var socket = io();
</script>
</body>
</html>
three.jsはパステストのためにちょうどそこにありました。これにより、すべての子ファイルがアプリのルートディレクトリで開始するように設定されます。また、socket.io.jsは、いくつかのダークマジックを介して<script src = "/socket.io/socket.io.js">
を使用して自動的に呼び出すことができます(その間に物理的にnode_modulesとlibディレクトリがあるため)。
var connect = require('connect');
var serveStatic = require('serve-static');
var app = connect();
app.use(serveStatic('../angularjs'), {default: 'angular.min.js'}); app.listen(3000);
「Cannot Get /」に対する解決策は、通常、コマンドラインで「ng build」を実行する場合に決定できます。ほとんどの場合、「インポート」の1つに正しいパスがないことがわかります。
また、静的ファイルを提供するためのノードモジュールであるstを試すこともできます。セットアップは簡単です。
npm install connect
npm install st
そして、私のserver-dev.jsファイルは次のようになります。
var connect = require('connect');
var http = require('http');
var st = require('st');
var app = connect()
.use(st('app/dev'));
http.createServer(app).listen(8000);
または(キャッシュが無効の場合):
var connect = require('connect');
var http = require('http');
var st = require('st');
var app = connect();
var mount = st({
path: 'app/dev',
cache: false
});
http.createServer(function (req, res) {
if (mount(req, res)) return;
}).listen(8000);
app.use(mount);
静的ファイルを提供する最も簡単な方法は、「ハープ」を使用することです。こちらにあります。 node経由で希望する場所からファイルを提供できます:
var harp = require("harp")
harp.server(projectPath [,args] [,callback])
お役に立てれば。
app.get
restart
が機能している場合、not
プロセスが必要になる場合があります。 ctl+c
を押し、次にrestart node app
を押します。