所有请求都说“text / html”,即使我设置了res.contentType

时间:2014-11-08 00:14:03

标签: javascript html node.js express content-type

所以,我已经运行了这个简单的小型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/

0 个答案:

没有答案