我有以下文件位置:
file:///Users/MyName/Developer/sitename/scripts (contains all .js files..)
file:///Users/MyName/Developer/sitename/css (contains all .css files..)
file:///Users/MyName/Developer/sitename/images (contains all .jpg/png/etc. files..)
file:///Users/MyName/Developer/sitename/sitename.html
file:///Users/MyName/Developer/sitename/server.js
在里面sitename.html
我加载所有必要的文件,例如:
<html>
<head>
<script src="scripts/somefile.js"></script>
</head>
...
</html>
所以每当我打开file:///Users/MyName/Developer/sitename/sitename.html
一切都很好。
但是,每当我尝试file:///Users/MyName/Developer/sitename/sitename.html
通过我设置的本地 Node.js 服务器(服务器文件位置:)加载时file:///Users/MyName/Developer/sitename/server.js
,如下所示:
var http = require("http");
var fs = require("fs");
fs.readFile('./sitename.html', function (err, html)
{
if (err) throw err;
http.createServer(function (request,response)
{
// serve site
if (request.url === "/")
{
response.writeHeader(200, {"Content-Type": "text/html"});
response.write(html);
}
response.end();
}).listen(8080);
});
sitename.html
已找到并加载,但所有其他应该通过它加载的文件都无法加载,因为它们都被赋予了前缀http://localhost:8080/
(http://localhost:8080/scripts/somefile.js
例如,不是有效的文件路径)。
看起来一旦服务器被创建(内部http.createServer(.....);
),上下文就会发生变化,并且父目录现在变为http://localhost:8080/
而不是file:///Users/MyName/Developer/sitename/
我猜这是有道理的,但在使用仍然存储在本地的文件时不是很有帮助。
我该如何解决这个问题?我将server.js
(暂时)存储在同一个目录中的事实是否让事情变得更加混乱?
谢谢!