利用nodejs创建了一个http服务器.response一个页面到客户端.但是页面里的图片显示不出来.
点右键路径为localhost:3000/130.jpg
没有项目名称..感觉是不是上下文没有设置的问题.
但是在后台的req.getContextPath()说没有这个方法.请问是什么原因造成的...怎么解决~多谢
还有客户端会警告:
Resource interpreted as Image but transferred with MIME type text/html
nodejsHTTP服务器应用服务器图片

解决方案 »

  1.   

    图片不能这样访问的,你不要把你创建的那个当做完整的服务器来看。图片是要解析成数据流通过response.write到客户端的。先通过分析请求路径,得到请求后缀,如果是图片格式,再通过file去读取图片,再将读取出来的东西response.write出来,最后response.end(),输出到客户端。
      

  2.   

    要设置输出对应的MIME头浏览器根据MIME来解释获取的数据具体搜索下
      

  3.   


    我输出的是一个html文件,只不过里面包括<img src=''>图片而已啊.
      

  4.   

    你以前有没有用nodejs做过服务器啊?页面里面的图片怎么处理的?难道只能在后台全部读出来放到客户端一个个再拼起来起来么?感觉好麻烦哦.
      

  5.   

    浏览器获取html的时候要解析 
    当解析到图片时 则用图片的src转换成url再访问后台 他要弄到图片的实际信息啊 不然图片怎么画出来?所以这个时候后台又接受到了一个访问请求 然后你当然要根据访问作出相对应的处理
    也就是 分析访问的url 设置正确的 MIME 并作出正确的流输出
    你说MIME是 html 浏览器就按照html的方式解析
    你说MIME是 JPEG 浏览器就按照图片的方式解析后台在接受到请求的时候 你打印 访问的url 就知道了实际的http访问处理是很复杂的
    nodejs就算封装了 http访问 但是自己还是要处理大把的东西
    学习就算了 实际使用 我是推荐用现成的框架
      

  6.   

    多谢啊.被你这么一说我倒有点儿明白了.原来是两个请求.我一直以为只有一次请求的.所以感觉如果动态设置MIME根本就没有依据.我按照你的方法先试试去.至于框架的话express就可以了吧?有什么其他推荐么?
      

  7.   

    你以前有没有用nodejs做过服务器啊?页面里面的图片怎么处理的?难道只能在后台全部读出来放到客户端一个个再拼起来起来么?感觉好麻烦哦.你可以搜一下NODEJS 静态文件服务器。我自己看过一段时间,事实上所有文件都是这样输出到客户端的。