关键词:
【中文标题】库魔法。 text/plain 而不是 text/javascript text/css【英文标题】:libmagic. text/plain instead of text/javascript text/css 【发布时间】:2012-09-11 17:59:23 【问题描述】:我使用 libmagic 在我的项目的 Web 界面中获取文件的 mime 类型。我在 css 和 js 文件上获得 text/plain mime 类型。
例如 chromium 显示以下警告:
Resource interpreted as Stylesheet but transferred with MIME type text/plain: "http://localhost:8000/jquery-ui.css".
Resource interpreted as Script but transferred with MIME type text/plain: "http://localhost:8000/jquery.timers.js".
Http 对话框
alex@alex-laptop ~ $ nc localhost 8000
GET /ui.css HTTP/1.1
HTTP/1.1 200 OK
Connection: close
Content-Length: 699
Content-Type: text/plain; charset=us-ascii
Date: Wed, 19 Sep 2012 11:41:48 GMT
...
我该如何解决这个问题?
【问题讨论】:
为什么你为此使用 libmagic? .css 和 .js 的 mime 类型定义明确,您无需猜测它们(这几乎就是 libmagic 所做的)。 我使用了很多不同类型的文件。我不想硬编码他们的 mime 类型。 【参考方案1】:不确定您需要这个做什么。
通常您会通过扩展名、目录等知道哪些文件是什么。
最简单的方法是检查扩展 - 但猜测出于某种原因,这不是一种选择。
您可以制作自定义函数来解析和检测 ecma 和 css:
if (mime==text/plain) mime = my_parser(data);
您可以使用验证器并检查它是否验证为 css 或 js。
您可以创建自己的magic pattern file,在其中测试您想要的东西——虽然很容易出错;
例如(非常简化)……
文件 my.magic:
0 search/4096 =function\
>&0 search/128 =)
>>&0 search/128 = JavaScript
!:mime application/javascript
0 search/4096 =
>&0 search/512 =transition- CSS3
!:mime text/css
0 search/4096 =
>&0 search/512 =background: CSS
!:mime text/css
0 search/4096 =
>&0 search/512 =color: CSS
!:mime text/css
然后编译:
$ file -C -m my.magic
并使用:
$ file -im my.magic.mgc some_file
【讨论】:
【参考方案2】:您需要做与 Apache 相同的事情:查阅 MIME 类型的扩展数据库,如果失败,请查阅 libmagic。
文本和 XML 文件通常过于通用,libmagic 无法识别。 libmagic 仅用于通过检查几个字节来确定文件类型,因此 CSS 和 JavaScript 的区别不足以确定它们的确切类型。对于 XML,libmagic 必须有相当复杂的规则来确定文件是 XHTML、SVG、XHTML+SVG,还是生成 XHTML 和/或 SVG 的 XSLT。这超出了它的范围。
【讨论】:
使用 application/json 优于 text/plain 的优势? [关闭]
...】:使用内容类型application/json发送序列化为json的对象而不是text/plain有任何性能优势吗?我知道许多框架(如Spring)可以根据内容类型映射和序列 查看详情
EventSource 的响应具有不是“text/event-stream”的 MIME 类型(“text/plain”)
】EventSource的响应具有不是“text/event-stream”的MIME类型(“text/plain”)【英文标题】:EventSource\'sresponsehasaMIMEtype("text/plain")thatisnot"text/event-stream"【发布时间】:2016-08-3010:29:45【问题描述】:。中止连接。为什么我... 查看详情
无法连接到 Spring Cloud + Hystrix + Turbine 中的 Command Metric Stream - MIME 类型(“text/plain”)不是“text/event
】无法连接到SpringCloud+Hystrix+Turbine中的CommandMetricStream-MIME类型(“text/plain”)不是“text/event-stream”【英文标题】:UnabletoconnecttoCommandMetricStreaminSpringCloud+Hystrix+Turbine-MIMEtype("text/plain")thatisnot"text 查看详情
使用 CORS 在 WebAPI 中将 text/plain 作为复杂对象发布
...服务器。不幸的是,IE8只支持在使用CORS时发送text/plain而不是application/json。有没有办法在We 查看详情
WebApi v2 不接受 text/plain 媒体类型
】WebApiv2不接受text/plain媒体类型【英文标题】:text/plainMediaTypenotbeingacceptedforWebApiv2【发布时间】:2017-01-1507:43:38【问题描述】:这个问题从IE9开始,对于POST请求,contentType必须是text/plain,而application/json将不起作用。我添加了moo... 查看详情
使用 SwiftMailer 为 text/html 和 text/plain 使用附件
】使用SwiftMailer为text/html和text/plain使用附件【英文标题】:Useanattachmentforbothtext/htmlandtext/plainwithSwiftMailer【发布时间】:2017-03-0522:56:24【问题描述】:我正在使用swiftmailer发送电子邮件,我希望有相同的附件:*HTML版本(text/html)作... 查看详情
nodejs怎么把html以源码的形式在网页中显示了,而不是解析它
可以通过设置输出到浏览器的\'Content-Type的值为text/html即文本类型的html即可实现将html代码发送到浏览器中解释,而如果设置的值为text/plain则值会显示为文本而不会被浏览器渲染。代码实例如下:const http = require(\'http\');const ho... 查看详情
为啥 Outlook 不使用 text/plain 部分?
】为啥Outlook不使用text/plain部分?【英文标题】:Whywon\'tOutlookusethetext/plainpart?为什么Outlook不使用text/plain部分?【发布时间】:2013-10-0817:59:27【问题描述】:首先,你好,使用SwiftMailer,我正在发送HTML+PLAIN电子邮件。在Outlook上,... 查看详情
php内容类型text/plain(代码片段)
此资源不支持请求实体的媒体类型“text/plain”
】此资源不支持请求实体的媒体类型“text/plain”【英文标题】:Therequestentity\'smediatype\'text/plain\'isnotsupportedforthisresource【发布时间】:2017-07-0508:01:52【问题描述】:我正在编写一个带有POST请求的服务:[HttpPost][ActionName("Post")]publi... 查看详情
如何在 Akka HTTP 中将“text/plain”解组为 JSON
】如何在AkkaHTTP中将“text/plain”解组为JSON【英文标题】:Howtounmarshall`text/plain`asJSONinAkkaHTTP【发布时间】:2016-03-2300:52:27【问题描述】:我正在使用一个旧的HTTPAPI(我无法更改),它在正文中使用JSON进行响应,但会提供一个Conte... 查看详情
为啥mp4视频的内容类型可以是text/plain?
】为啥mp4视频的内容类型可以是text/plain?【英文标题】:Whythecontenttypeofamp4videocanbetext/plain?为什么mp4视频的内容类型可以是text/plain?【发布时间】:2011-07-0200:18:46【问题描述】:我正在开发一个可以接收文件url的应用程序,并... 查看详情
一个接口返回contenttype=text/plain的数据,在前端怎么处理
springboot项目,在接收text/plain格式的时候,无法通过@requestBody得到请求中的json信息,需要对请求中的参数进行解析。异常type'text/plain;charset=UTF-8'notsupported。/***解析text/plain格式请求中的json**@paramrequest*@return*/publicstaticStringfet... 查看详情
在带有附件的电子邮件中将内容类型从 text/plain 转换为 text/html
】在带有附件的电子邮件中将内容类型从text/plain转换为text/html【英文标题】:Convertcontent-typefromtext/plaintotext/htmlinanemailwithattachment【发布时间】:2014-08-1818:58:55【问题描述】:我正在尝试显示从服务器获取的电子邮件。在让您知... 查看详情
method="post" enctype="text/plain" 不兼容?
】method="post"enctype="text/plain"不兼容?【英文标题】:method="post"enctype="text/plain"arenotcompatible?【发布时间】:2011-11-2912:07:58【问题描述】:当我使用时<formmethod="post"enctype="text/plain"action= 查看详情
使用: text/plain; 有啥缺点吗?字符集="UTF-8"
】使用:text/plain;有啥缺点吗?字符集="UTF-8"【英文标题】:Isthereanydisadvantageofusing:text/plain;charset="UTF-8"使用:text/plain;有什么缺点吗?字符集="UTF-8"【发布时间】:2013-07-2920:39:43【问题描述】:我的网络服务器... 查看详情
sublime指定打开某文件的类型(text/plain)
看下图,点击openallwidth...选取你指定文件,以后打开都是你指定文件类型 查看详情
与 text/plain ContentType 一起使用的正确换行符是啥?
】与text/plainContentType一起使用的正确换行符是啥?【英文标题】:Whatisthecorrectnewlinetousewithtext/plainContentType?与text/plainContentType一起使用的正确换行符是什么?【发布时间】:2015-08-1117:16:44【问题描述】:当网络服务器在HTTP响应... 查看详情