[英]ExpressJs is not serving index.html
我有一個完全在瀏覽器中運行的Angular客戶端應用程序。 我正在嘗試使用expressjs托管它。 我在John Papa在他的Pluralsight Gulp課程中使用的MEAN Hot Towel應用程序中的server.js建模了服務器代碼。 這是我的服務器代碼:
var express = require('express');
var app = express();
var port = process.env.PORT || 7203;
var environment = process.env.NODE_ENV;
console.log('About to crank up node');
console.log('PORT=' + port);
console.log('NODE_ENV=' + environment);
app.get('/ping', function(req, res) {
console.log(req.body);
res.send('pong');
});
console.log('** DEV **');
app.use(express.static('./src/app'));
app.use(express.static('./'));
app.use(express.static('./temp'));
app.use('/*', express.static('./src/index.html'));
app.listen(port, function() {
console.log('Express server listening on port ' + port);
console.log('env = ' + app.get('env') +
'\n__dirname = ' + __dirname +
'\nprocess.cwd = ' + process.cwd());
});
當我導航到localhost:port / ping時,我得到了pong。 當我導航到localhost:port /時,出現404錯誤。 有人可以告訴我我在做什么錯嗎?
如上述注釋中的@ tommyd456所示,您需要聲明'/'的路由,如下所示:
app.get('/', function(req, res) {
res.send('Hello!');
});
從express 文檔中 ,似乎express.static是針對文件夾的 。
因此,替換app.use('/*', express.static('./src/index.html'));
通過app.use('/*', express.static('./src'));
解決您的問題,index.html將在“ localhost:port /”下提供
因此,經過數小時的擺弄和閱讀,我替換了以下代碼:
app.use(express.static('./src/app'));
app.use(express.static('./'));
app.use(express.static('./temp'));
app.use('/*', express.static('./src/index.html'));
有了這個:
app.use(express.static(__dirname));
app.use(express.static(process.cwd()));
app.route('/*')
.get(function(req, res) {
res.sendFile(__dirname + '/index.html');
});
看來已經解決了問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.