无法获取本地文件test.txt://本地主机:8080/test.txt的
问题描述:
我已经有了localhost:8080
运行的服务器,我的文件都按这样的:无法获取本地文件test.txt://本地主机:8080/test.txt的
/test
server.js
chatroom.html
test.txt
服务器.js文件:
var express = require("express");
var app = express();
app.get("/", function(request, response) {
response.sendFile(__dirname + "/chatroom.html");
});
app.listen(8080);
所以在我的浏览器的时候,我去http://localhost:8080
我得到服务chatroom.html
就好了。
我遇到的问题:
但是,当我去http://localhost:8080/chatroom.html
它为我“不能得到/chatroom.html”
,同样,如果我去http://localhost:8080/test.txt
它为我“不能GET /chatroom.html”
我不明白这里发生了什么问题,任何帮助将不胜感激!
答
您只为Express定义了一个路径,即根路径“/”。如果你想要其他文件可用,你也需要为它们调用app.get()。
或者,您可以将这些静态资产放在一个目录中,然后use express.static为它们提供服务。
好的,你能告诉我,我是否理解这一点?我一直在想,显然不正确的是,在浏览器中输入'http:// localhost:8080/test.txt'与输入'file:///类似。 。 。/test/test.txt',除了它只是一个相对于'localhost:8080'的路径。你是说实际上,输入'http:// localhost:8080/test.txt'向服务器发送一个GET请求,它不知道如何处理? – digglemister
没错。当您使用像Apache或Nginx这样的Web服务器时,通常会将它们配置为在静态文件存在的情况下提供服务,并且只有在请求的路径与文件不匹配时才会与PHP或node.js等后端连接。但通过连接到端口8080,您直接访问node&Express,而Express只知道您告诉它的路径以及您注册的任何中间件。 –