快速服务器在试图访问index.html时返回Cannot Get

Express Server returns Cannot Get when trying to access index.html

本文关键字:html 返回 Cannot Get index 访问 服务器      更新时间:2023-09-26

我提到了之前问的问题,但无法解决它。我已经安装了Express服务器并试图通过它运行Index.html文件。但是我得到的是'Cannot GET/'作为响应。

这是我调用index.html

的server.js
var express = require('express');
var app = express();
app.get('index.html', function (req, res) {
  app.use("/", express.static(__dirname));
});
var server = app.listen(3000, function () {
  var host = server.address().address;
  var port = server.address().port;
  console.log('Example app listening at http://%s:%s', host, port);
});

提前感谢!!

当您访问托管站点上的目录时,例如端口8080上localhost的根目录,使用http://localhost:8080/作为URL,浏览器不会向服务器发送'index.html '请求,而只是使用服务器发回的任何内容。

它是一个快速的静态中间件,在响应没有文件名的浏览器请求时,它会检查文件夹是否存在,并(默认情况下)返回文件夹中包含的任何index.html。因此,您的路由代码行app.get('index.html')永远不会执行,并且浏览器会给您错误消息。

如果你想尝试一下,这是一个迷你的静态快递服务器。

var express = require('express');
var app = express();
app.use(express.static('../public')); // path to your public directory
var server = app.listen(8080, function () {
   var host = server.address().address;
   var port = server.address().port;
   console.log('Example app listening at http://%s:%s', host, port);
 });

如果你想要一个简单的静态的,文件夹即服务器的东西,你可以不像"/public":

var fs = require("fs");
var host = "localhost";
var port = 8000;
var express = require("express");
var app = express();
app.use('/', express.static(__dirname));
app.listen(port, host);

我把它放在文件express.js中,所以它在同一个文件夹中,而不是index.html(甚至将.js与node.exe相关联)。这样文件夹就是服务器的根目录