javascript - libmagic。 text/plain 而不是 text/javascript text/css

标签 javascript css c libmagic

我使用 libmagic 在我的元素的 Web 界面中获取文件的 MIME 类型。我在 css 和 js 文件上得到文本/纯 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

...

我该如何解决这个问题?

最佳答案

不确定您在做什么需要这个。

通常您会通过扩展名、目录等知道哪些文件是什么。

最简单的方法是检查扩展——但我猜,出于某种原因,这不是一种选择。

您可以创建一个自定义函数来解析和检测 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

关于javascript - libmagic。 text/plain 而不是 text/javascript text/css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12494501/

相关文章:

javascript - 如何防止 Firefox 在启动时显示我的扩展的侧边栏?

javascript - undefined 不是 canjs 中的函数

css - 无法覆盖 Twitter Bootstrap btn 类默认字体大小

c# - 是否有任何 C# 到 C 的转换工具?

c - 重新分配与其偏移量不同的已分配内存块

javascript - 如何避免日期时间选择器中的秒数?

javascript - 使用 jQuery 切换基于两组复选框的各种 div 的可见性?

html - Bootstrap 表单内联不与验证消息居中

html - 在CSS中绘制半圆形

c++ - 如何在c中实现一个类