我有以下文件位置:
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
,一切都正常。
但是,当我尝试通过我设置的本地 Node.js 服务器加载 file:///Users/MyName/Developer/sitename/sitename.html
时(服务器文件位置: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
(仅暂时)存储在同一个目录中是否使事情更加混乱?
谢谢!