我有一个包含 jqGrid 插件的简单 HTML 文件。我正在使用 jqGrid 插件在我的 HTML 页面中有一个树形网格。
现在,我试图在 node.js 服务器中托管这个 HTML 文件。我的 server.js 看起来像这样
var http = require('http');
var fs = require('fs');
var path = require('path');
http.createServer(function (request, response) {
console.log('request starting...');
var filePath = '.' + request.url;
console.log('filePath : '+filePath);
if (filePath == './')
filePath = './tree.html';
var extname = path.extname(filePath);
console.log('extname : '+extname);
var contentType = 'text/html';
switch (extname) {
case '.js':
contentType = 'text/javascript';
break;
case '.css':
contentType = 'text/css';
break;
}
path.exists(filePath, function(exists) {
if (exists) {
fs.readFile(filePath, function(error, content) {
if (error) {
response.writeHead(500);
response.end();
} else {
response.writeHead(200, { 'Content-Type': contentType });
response.end(content, 'utf-8');
}
});
} else {
response.writeHead(404);
response.end();
}
});
}).listen(8125);
到目前为止,我可以在浏览器中显示我的 HTML 内容 [http://localhost:8125/]
我的部分 HTML(tree.html) 文件如下所示
jQuery("#treegrid").jqGrid({
url: 'tree.json',
datatype: 'json',
//mtype: 'GET',
colNames: [/* "ID", */"Col 1", "Col 2",.. ],
colModel: [/* {
name: 'id',
index: 'id',
width: 1,
hidden: true,
key: true
}, */{ ...
如果您注意到,我已将“tree.json”指定为 URL 属性以加载树形网格。那只是读取一个静态文件以加载带有示例数据的树形网格。
问题:现在,当我尝试使用 [http://localhost:8125/] 访问我的 HTML 文件时,我收到[http://localhost:8125/tree.json]的404 Not Found错误
快速解决方案:我可以指定文件“tree.json”的相对路径,它可以工作。
我的 HTML 文件tree.html和tree.json都在同一个目录(/tree)中,我像这样从命令提示符(终端)启动我的 node.js 服务器
tree> node server.js
我想知道我可以在哪里放置我的tree.json以使我的 HTML 按预期工作。
请随时询问任何澄清。
提前致谢