重定向Javascript时无法从同一目录加载资源

重定向Javascript时无法从同一目录加载资源,javascript,html,node.js,Javascript,Html,Node.js,我正在用NodeJS编写一个应用程序 我在同一目录中有两个文件,但无论何时调用: window.location.href=“./page.html”; window.location.href=“/page.html”要使用Express提供静态文件,您应该使用Express.static,否则您必须为您拥有的每个html文件定义一个新的路由,或者重新创建由Express.static提供的功能(如果您不想使用Express,请参阅。) 您可以这样做: app.js 将文件放在html子目录

我正在用NodeJS编写一个应用程序

我在同一目录中有两个文件,但无论何时调用:

window.location.href=“./page.html”;

window.location.href=“/page.html”
要使用Express提供静态文件,您应该使用
Express.static
,否则您必须为您拥有的每个html文件定义一个新的路由,或者重新创建由
Express.static
提供的功能(如果您不想使用Express,请参阅。)

您可以这样做:

app.js
将文件放在
html
子目录中。例如:

html/index.html
文件将每2秒重定向一次

您可以从GitHub下载此示例:

更多使用和不使用Express的示例:

其他有关答案:


它与节点有什么关系?当您手动输入URL时,您能访问这两个文件吗?当我通过节点运行它时,我调用:app.get('/',function(req,res){res.sendFile(uu dirname+'/index.html');});所以当我访问这个网站时,我会去。我真的不知道其他方法。使用express静态中间件来服务静态文件
app.Use(express.static('public'),将提供公用文件夹
/public/
中的任何文件。看这个,非常感谢!
var path = require('path');
var express = require('express');
var app = express();

var htmlPath = path.join(__dirname, 'html');

app.use(express.static(htmlPath));

var server = app.listen(3000, function () {
    var host = 'localhost';
    var port = server.address().port;
    console.log('listening on http://'+host+':'+port+'/');
});
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>index.html</title>
</head>
<body>
<h1>index.html</h1>
<p>Redirection in 2s...</p>
<script>
setTimeout(function () {
   window.location.href = "./page.html";
}, 2000);
</script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>page.html</title>
</head>
<body>
<h1>page.html</h1>
<p>Redirection in 2s...</p>
<script>
setTimeout(function () {
   window.location.href = "./index.html";
}, 2000);
</script>
</body>
</html>