Node.js - 资源解释为脚本,但使用 MIME 类型 text/plain 进行传输

2024-01-01

首先:我没有使用 Express。

有了这个,当我加载我的index.html递归归档readFile每个附加文件,例如我的 CSS 和 JS 页面。但它总是在我的检查器(Chrome)中返回此错误:

资源解释为脚本,但以 MIME 类型 text/plain 传输

我完全不知道它为什么这样做。这是我的代码:

var http = require('http');
var querystring = require('querystring');
var fs = require('fs');
var url = require('url');

function route(handle, pathname, response, request){
console.log("About to route a request for " + pathname);

if (typeof handle[pathname] === "function"){        
    handle[pathname](response, request);
    } else {

    var file_path = "";

    // parses the url request for a file and pulls the pathname
    var url_request = url.parse(request.url).pathname;      
    var tmp  = url_request.lastIndexOf(".");
    var extension  = url_request.substring((tmp + 1));

    file_path = url_request.replace("/", "");

    //load needed pages and static files
    fs.readFile(file_path, function (error, contents){
        if(error){
          console.log('DIE!');
          console.log(error);
          response.writeHeader(500, {"Content-Type": "text/html"});  
          response.end("<h1>FS READ FILE ERROR: Internal Server Error!</h1>");    
        }
        else{ 
          console.log('SUCCESS!');
          // set content type
          if (extension === 'html') response.writeHeader(200, {"Content-Type": 'text/html'});
          else if (extension === 'htm') response.writeHeader(200, {"Content-Type": 'text/html'});
          else if (extension === 'css') response.writeHeader(200, {"Content-Type": 'text/css'});
          else if (extension === 'js') response.writeHeader(200, {"Content-Type": 'text/javascript'});
          else if (extension === 'png') response.writeHeader(200, {"Content-Type": 'image/png'});
          else if (extension === 'jpg') response.writeHeader(200, {"Content-Type": 'image/jpg'});
          else if (extension === 'jpeg') response.writeHeader(200, {"Content-Type": 'image/jpeg'});
          else { console.log("NO CORRECT EXTENSION")};
            console.log(extension);
            response.end(contents);
        }

        response.end();  
    });
    response.end();
}
}

exports.route = route;

我怎样才能解决这个问题?这让我的项目停止了。

注意:这是我在这里讨论过的早期问题的进展:Node.js路径错误问题 https://stackoverflow.com/questions/18004512/node-js-incorrect-path-problems/18004553?noredirect=1#comment26330812_18004553


尝试注释掉最后一个响应。结束。不要认为你需要它。

    response.end();  
    });
    // response.end();
   }
   exports.route = route;

我怀疑在 fs.readfile 回调中的回调有时间执行之前立即调用 response.end ,可能会关闭服务器上的标头,而不会给正确的标头 "Content-Type": 'text/javascript' 机会被发送..

在你的代码上尝试过,对我有用..

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node.js - 资源解释为脚本,但使用 MIME 类型 text/plain 进行传输 的相关文章

随机推荐

  • 按文件中的列批量排序

    我想知道是否有可能按列对文本文件进行排序 例如 I have aux1 txt像这样的行 Name SecondName Grade 在外壳中我可以做到这一点 sort r k 3 aux1 它按第三列 等级 对文件进行排序 批量中 sor
  • 对列表中相同元素的索引进行分组的有效方法

    假设我有一个如下所示的列表 1 2 2 5 8 3 3 9 0 1 现在我想对相同元素的索引进行分组 因此结果应如下所示 0 9 1 2 3 4 5 6 7 8 我如何以有效的方式做到这一点 我尽量避免使用循环 因此任何使用 numpy p
  • 我想将 Angular 4 的数据发送到 javaservlet (跨域)[重复]

    这个问题在这里已经有答案了 我想将数据从 Angular 4 发送到 java servlet 但无法发送 因为没有通过访问控制 我想用java servlet将数据插入数据库 这是我的代码 前端 data service ts impor
  • 我可以匹配具有相同值形状的所有枚举变体吗?

    我有一个枚举 enum MyEnum A i32 B i32 C D 我可以匹配吗A and B同时与这样的事情 let a MyEnum A 1 match a n gt do something for all variants whi
  • IP地址匹配功能

    我需要找出ip是否属于ip mask 例如 ip 192 168 0 1 掩码 192 168 0 1 24 我找到了将 ip 转换为掩码的函数 inet cidrtoaddr int cidr struct in addr addr in
  • 用 Javascript 求最大质因数

    谢谢阅读 总的来说 对于 Javascript 和编程来说还是很陌生的 我正在寻找一种方法来返回给定数字的最大素因数 我的第一直觉是使用一个 while 循环来计数并找到该数字的质因数 将这些因数存储在数组中并在每次找到一个时重置 这样数组
  • curl: (3) URL 位置 1 中不匹配的大括号:

    我正在从这里运行 Apache Solr 教程 http lucene apache org solr guide 7 6 solr tutorial html http lucene apache org solr guide 7 6 s
  • 如何枚举 Excel 中的重复行?

    我的数据看起来像这样 Monkey Donkey Elephant Panda Donkey Donkey Monkey 我想用数字来区分行 对每个重复项进行计数 Monkey 1 Donkey 1 Elephant 1 Panda 1 D
  • 无法使用数据表和免费编辑器编辑/创建/删除表中的元素

    我正在尝试使用来自 AJAX 调用的 JSON 格式的数据构建一个可编辑表 为此 我将数据表插件与免费数据表编辑器 kingkode com free datatables editor alternative 一起使用 我无法使用数据表编
  • 按下按钮时关闭虚拟键盘

    我有一个Activity与EditText 一个按钮和一个ListView 目的是在搜索屏幕中键入EditText 按下按钮 搜索结果就会填充到此列表中 这一切都工作正常 但虚拟键盘的行为很奇怪 如果我点击EditText 我得到了虚拟键盘
  • 如何读取 WebGL 中的深度缓冲区?

    使用 WebGL API 除了执行我自己的光线投射之外 如何从深度缓冲区获取值 或以任何其他方式从屏幕坐标确定 3D 坐标 即找到单击的位置 几年过去了 这些天WEBGL depth texture扩展广泛可用 除非您需要支持 IE 一般用
  • myspace和linkedin在iphone中的实现

    我想在 iPhone 应用程序中实现 LinkedIn 和 Myspace 我的意思是我想使用我的应用程序更改两者的状态 是否有任何 API 可以同时访问这两者 我尝试了 OAuth API 但它仅适用于 Twitter 谢谢 提前 Lin
  • 了解 TodoMVC 示例

    开始学习node js 和backbone js 并使用TodoMVC 示例作为我的指南 有几个部分我很难理解 见下文 这是app js var express require express http require http mongo
  • 如何使用 python 加载 *.hdr 文件

    我想阅读 hdr 文件格式的环境地图 似乎非常流行的库不支持 hdr 文件读取 例如 OpenCV PIL 等 那么如何将 hdr 文件读取到 numpy 数组中呢 I found ImageIO http imageio github i
  • 是否有相当于“ListView.addHeaderView”的 XML 标记?

    是否有一个 XML 标签可以在布局文件中使用 它相当于ListView addHeaderView http developer android com reference android widget ListView html addH
  • 如何在 ZF2 / ZF3 url 视图助手中添加查询参数

    我正在尝试使用路由创建带有查询字符串的 url 如下所示 this gt url users gt users this gt url users sort gt desc gt users sort desc 然而这似乎不起作用 第二个助
  • Ruby + Windows + 超时 + 串行端口不起作用

    我正在开发一个多平台 Ruby 程序 该程序应该通过 USB 连接到串行设备 首先我使用了serialport gem 1 0 4 但后来我遇到了一些奇怪的问题 不得不放弃它 然后我继续通过Ruby的IO类进行通信 如下所示 port IO
  • 错误:index.js:找不到模块“babel-plugin-r”React Native

    我做了什么导致了错误 我有一个新安装的 Bare React Native Project 我想使用抽屉导航并且必须安装 React Native Reanimated 2 3 0 alpha 2 我已经尝试解决该错误 我已经安装了新的裸反
  • 回归对输入变量之一给出错误“对比只能应用于具有 2 个或更多级别的因素”[重复]

    这个问题在这里已经有答案了 我正在 R 中使用大量输入变量运行 logit 回归 newlogit lt glm install SIZES GROSSCONSUMPTION NETTCONSUMPTION NETTGENERATION G
  • Node.js - 资源解释为脚本,但使用 MIME 类型 text/plain 进行传输

    首先 我没有使用 Express 有了这个 当我加载我的index html递归归档readFile每个附加文件 例如我的 CSS 和 JS 页面 但它总是在我的检查器 Chrome 中返回此错误 资源解释为脚本 但以 MIME 类型 te