redirectJavascript时无法从同一目录加载资源

我在NodeJS中编写应用程序。

我在同一目录中有两个文件,但每当我打电话:

window.location.href = "./page.html"; window.location.href = "/page.html"; 

从我的index.html我得到一个失败,加载资源错误。

谢谢!

要使用Express提供静态文件,您应该使用express.static ,否则您将必须为每个html文件定义一个新的路由,或者重新创buildexpress.static提供的function。 (如果您不想使用Express,请参阅此答案 。)

你可以做这样的事情:

app.js

 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+'/'); }); 

把你的文件放在html子目录中。 例如:

html/index.html

 <!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> 

html/page.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> 

这些文件将每2秒redirect。

你可以从GitHub下载这个例子:

更多的例子来做和不使用Express:

其他相关答案:

  • 如何使用nodejs提供图像
  • onload js调用不与节点一起工作
  • 用express发送整个文件夹内容给客户端
  • 在服务器JS上加载partials失败
  • 节点JS不提供静态图像