所以,我已经运行了这个简单的小型Express应用程序,它决定是否添加“.html”。这几乎是脚本的基础。这是脚本:
var app = require("express")(),
cproc = require("child_process"),
http = require("http").Server(app),
fs = require("fs"),
mime = require("mime")
__webdir = __dirname + "/web",
mcs = null;
app.get("*", function(req, res){
var getloc = __webdir + req.originalUrl,
llcurl = getloc.split("/")[getloc.split("/").length-1],
modloc = null;
if (llcurl.match(/\./g)) {
modloc = getloc;
} else if (llcurl === "") {
modloc = getloc + "start.html";
} else {
modloc = getloc + ".html";
}
res.send(fs.readFileSync(modloc).toString());
res.contentType(mime.lookup(modloc));
});
虽然当我像这样包含带有HTML的CSS文件或JavaScript文件时:
<link href="main.css" rel="stylesheet" type="text/css" />
在Google Chromium的开发者工具的“网络”标签中,它说内容类型为text/html
,显然不是这样。
正如你在底部所见,我有
res.contentType(mime.lookup(modloc));
虽然mime.lookup
确实返回了MIME类型,但Chrome网络菜单中的所有内容仍为text/html
。
理解的额外信息
所以,我的根是node_base
,其中存储了app.js
...所以它在node_base/app.js
HTML文件存储在node_base/web/
JS和CSS文件位于node_base/web/static/