Javascript ExpressJs不提供index.html服务
我有一个完全在浏览器中运行的Angular客户端应用程序。我正在尝试使用expressjs来托管它。我在John Papa的MEAN Hot Tobble应用程序中以server.js为基础对服务器代码进行建模,该应用程序在他的Pluralsight吞咽课程中使用。这是我的服务器代码:Javascript ExpressJs不提供index.html服务,javascript,angularjs,express,Javascript,Angularjs,Express,我有一个完全在浏览器中运行的Angular客户端应用程序。我正在尝试使用expressjs来托管它。我在John Papa的MEAN Hot Tobble应用程序中以server.js为基础对服务器代码进行建模,该应用程序在他的Pluralsight吞咽课程中使用。这是我的服务器代码: var express = require('express'); var app = express(); var port = process.env.PORT || 7203; var environmen
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/I时,我得到一个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');
});
它似乎已经解决了这个问题我知道,你还没有找到一条路径来处理/
,但是John Papa的应用程序也没有,我已经看到很多例子显示“/*”是express angular Apps的首选,我只使用了*而不使用/来处理catch all Part OK,这让我得到了index.html,但我仍然在所有其他应用程序文件上收到404个错误。