【发布时间】:2021-06-11 21:00:32
【问题描述】:
我知道这个问题不是第一个,但我不知道在哪里寻找解决方案。 我有一个快速后端服务器。它必须在启动时呈现带有 main.js 的 HTML 页面。
app.js 代码:
var createError = require('http-errors');
var express = require('express');
var path = require('path');
// <...>
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var app = express();
app.set('views', path.resolve(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(cors());
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.resolve(__dirname, 'public')));
var listener = app.listen(5000, function(){
console.log('Listening on port ' + listener.address().port);
});
app.use('/', indexRouter);
app.use('/users', usersRouter);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
module.exports = app;
public/index.html 代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet"
type="text/css">
<link rel="shortcut icon" href="./favicon.ico" type="image/x-icon">
<title>Fetch Travels</title>
<style>
#play {
display: none;
}
</style>
</head>
<body>
<button type="button" class="btn btn-primary" id="play">search</button>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script src="main.js" type="module"></script>
</body>
</html>
public/main.js 显然是在服务器上找不到但在 localhost 中找到的客户端脚本。
【问题讨论】:
标签: javascript html node.js express http-status-code-404