在openResty作为Web服务器的情况下访问根目录的首页时,出现了这样一个问题:

  nginx端的配置:

 worker_processes  2;
error_log logs/error.log; events {
worker_connections 1024;
} http {
server {
listen 8080;
server_name localhost; location / {
index index index.html index.htm;
root /usr/local/openresty/nginx/work; }
location /dir {
 default_type "text/plain";
  content_by_lua_file /usr/local/openresty/nginx/work/resources/lua/index.lua;
} }
}

  仅就nginx配置来看,是没有什么问题的,不过实际使用上,就发生了这个错误,页面的呈现也出现了问题,仅仅把文本输出了,其余都没有反应。

  多方查询求证,到目前为止,问题的解决方案就是在服务器的响应头添加Content-Type配置,这里有两种解决办法,一种是openresty的more_set_headers模块方法,另外一种就是使用nginx方法add_header指令给response添加Content-type内容,这样就解决了那个办法。


  MIME类型

  MIME是一种保证非ASCII码文件在internet上传播的规格。原本是用于邮件系统传送除了ASCII就是纯文本文件的内容外,可以传送图片等其他格式使用的。后来,浏览器也支持这种规范,所以除了HTML等文本格式外,可以有很多其他格式。

  浏览器在接收到服务器的响应文件时,会通过响应头Content-Type的内容来进入插件系统进行查找,查找出哪种插件可以识别读取接收到的文件。如果插件缺失,会提示你下载插件,所以Content-Type的内容决定了你是否能够正确的呈现你想要呈现的内容。

  常见的MIME类型

    超文本标记语言文本 .html  html text/html

    普通文本 .txt   text/plain

    RTF文本 .rtf   application/rtf

    GIF图形 .gif   image/gif

    JPEG图形 .ipeg  jpg image/jpeg

    au声音文件 .au   audio/basic

    MIDI音乐文件 mid  midi audio/midi,audio/x-midi

    RealAudio音乐文件 .ra  ram audio/x-pn-realaudio

    MPEG文件 .mpg  mpeg video/mpeg

    AVI文件 .avi   video/x-msvideo

    GZIP文件 .gz   application/x-gzip

    TAR文件 .tar   application/x-tar

    更多查看这里

  Internet中有一个专门组织IANA来确认标准的MIME类型,但Internet发展的太快,很多应用程序等不及IANA来确认他们使用的MIME类型为标准类型。因此他们使用在类别中以x-开头的方法标识这个类别还没有成为标准,例如:x-gzip,x-tar等。事实上这些类型运用的很广泛,已经成为了事实标准。只要客户机和服务器共同承认这个MIME类型,即使它是不标准的类型也没有关系,客户程序就能根据MIME类型,采用具体的处理手段来处理数据。而Web服务器和浏览器(包括操作系统)中,缺省都设置了标准的和常见的MIME类型,只有对于不常见的 MIME类型,才需要同时设置服务器和客户浏览器,以进行识别。

  由于MIME类型与文档的后缀相关,因此服务器使用文档的后缀来区分不同文件的MIME类型,服务器中必须定义文档后缀和MIME类型之间的对应关系。而客户程序从服务器上接收数据的时候,它只是从服务器接受数据流,并不了解文档的名字,因此服务器必须使用附加信息来告诉客户程序数据的MIME类型。服务器在发送真正的数据之前,就要先发送标志数据的MIME类型的信息,这个信息使用Content-type关键字进行定义,例如对于HTML文档,服务器将首先发送以下两行MIME标识信息,这个标识并不是真正的数据文件的一部分。

  Content-type: text/html

  注意,第二行为一个空行,这是必须的,使用这个空行的目的是将MIME信息与真正的数据内容分隔开。


  使用了add_header指令后,index.html内联的.js文件和.css文件的response Content-Type内容都改正确了,本文开头的问题也没有再出现了。不过Chrome依旧仅显示了文本,各种js和css效果均未触发,问题终究未解决....

  最后,无意识的使用了其他的浏览器,包括IE等浏览器访问该文件,结果呈现内容效果是正确的。再用Chrome试试,依旧有问题...难道需要考虑浏览器兼容?或者是其他?先在这里把问题记下,待解决了问题再补齐!

【随笔】MIME类型的更多相关文章

  1. 上传和设置Mime类型

    这两天一直在忙把主页上传的事,幸亏不久前花七块钱买了一年的数据库和虚拟主机,昨天上传了自己的个人主页,发现很多问题要改,因为代码一直没整理就那么放着了,大部分东西都要重新弄,然后把本地数据库的数据迁移 ...

  2. 【积累篇:他山之石,把玉攻】Mime 类型列表

    按照内容类型排列的 Mime 类型列表 类型/子类型 扩展名 application/envoy evy application/fractals fif application/futurespla ...

  3. 如何在ASP.NET的web.config配置文件中添加MIME类型

    常常有一些特殊的MIME类型是IIS中没有的,一般来说要我们自己手动添加.如果网站经常更换服务器或者网站代码是提供给多个用户使用,那么会造成网站中用到的特殊的MIME类型要经常性的在IIS上配置.这里 ...

  4. 【IIS】IIS6.1配置 *.config 文件 的MIME类型用于升级程序

    参考:http://blog.csdn.net 1. 2. 请求筛选中允许config文件下载, 3. 添加.config到 MIME类型. 3.注意:筛选项.

  5. 使用MultipartEntity进行post请求的默认MIME类型

    MultipartEntity .FileBody的默认MIME类型:application/octet-stream

  6. 常用MIME类型(Flv,Mp4的mime类型设置)(转载)

    转载地址:http://www.cuplayer.com/player/Help/2011/0625/83.html 也许你会在纳闷,为什么我上传了flv或MP4文件到服务器,可输入正确地址通过htt ...

  7. 创建 MIME 类型////////////zzz

    用 Apache 创建 MIME 类型 在 Apache 里, MIME 类型和文件扩展名之间的映射是被存放在配置文件 "apache根目录/conf/mime.types" 里的 ...

  8. 各种文件的mime类型

    扩展名:abs MIME类型:audio/x-mpeg 扩展名:ai MIME类型:application/postscript 扩展名:aif MIME类型:audio/x-aiff 扩展名:aif ...

  9. 为Windows Azure Web站点添加MIME类型解决文件下载失败的问题

    这几天在倒腾Autodesk 360 Viewer,前面的文章也介绍过了,这将是一个全新的在线模型浏览工具.我做了个实验,把A360Viewer放在一个web 站点,然后发布到Windows Azur ...

随机推荐

  1. 策略和计费控制(PCC)系统研究

    策略和计费控制(PCC)系统研究 研究内容 [TOC "float:left"] 策略与计费控制(PCC)框架1 [架构图](achitecture.png "Archi ...

  2. 使用ffmpeg+crtmpserver搭建文件的伪直播

    Tutorial: How to "live stream" a media file 如何"直播"一个媒体文件 I have tried a while to ...

  3. CentOS7下搭建yum仓库

    服务端配置: 1.开启yum缓存 sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf [root@control /]# cat /etc/yum.c ...

  4. [LeetCode 题解]: Two Sum

    前言   [LeetCode 题解]系列传送门:  http://www.cnblogs.com/double-win/category/573499.html   1.题目描述 Given an a ...

  5. scvmm应答文件 无人值守安装系统

    我们可以通过这种windows配置文件实现winpe.光盘等无人职守安装配置操作系统,在scvmm虚拟化平台中这种文件叫做应答文件. 下面为一个windows server 2008 r2的一个完整应 ...

  6. Split 之特殊用法

    java中split()特殊符号"." "|" "*" "\" "]"   关于点的问题是用stri ...

  7. 菜鸟的Xamarin.Forms前行之路——共享组件

    出自:博客园-半路独行 本文出自于http://www.cnblogs.com/banluduxing 转载请注明出处. Url Description Xamarin.Social The Xama ...

  8. Windows上编译OpenEXR

    注意一定要使用1.0.1版本的ilmbase和1.6.1版本的openexr,其它版本的我测试过,OpenImageIO会编译失败. 解压ilmbase 1.0.1到[工作目录]/openexr/il ...

  9. vm虚拟机Kali无法拖拽文件解决办法

    vm虚拟机Kali无法拖拽文件解决办法 apt-get updateapt-get install open-vm-tools-desktop fusereboot

  10. redis 3.0 集群__安装

    参考文档 http://redis.io/topics/cluster-tutorial http://redis.io/topics/cluster-spec http://redis.readth ...