javascript / css mimetype的文件(1)的替代品

时间:2009-11-23 15:15:40

标签: javascript css file mime

在win32上我正在使用

$ file -v
file-5.03
magic file from C:\PROGRA~1\gnuwin32/share/misc/magic

但它给出了奇怪的结果

foo.css; text/x-c; charset=utf-8
json2.js; text/x-c; charset=us-ascii
foo.js; text/x-c++; charset=utf-8
bar.js; text/plain; charset=utf-8

有人得到类似的结果吗?更好的结果?有没有人知道另一种选择?

由于

1 个答案:

答案 0 :(得分:1)

我不认为file(1)命令可以执行此操作。 “file”命令在文件中查找魔术字符串 - 例如GIF文件开头的字符串“GIF89a”。 CSS和JS文件不像这样自我识别,所以你必须做一些更复杂的事情。

如果您可以访问服务器返回的Content-Type标头,那么通过查看文件内容来尝试猜测类型会更加可靠。

如果你只有文件内容,你可以自己搜索不太可能在CSS文件中的字符串,例如“function”或“var”。如果你找到它们,它可能是JavaScript。这当然是一种不完美的启发式方法 - 可能有一个名为“function.png”的背景图像。

另一种方式更容易出错,因为JavaScript可以操作CSS样式......在JS文件中找到像“text-decoration”这样的CSS属性并不罕见。

或者您可以尝试通过CSS或JS解析器运行该文件。如果在解析为CSS时遇到大量错误,则可能不是CSS文件:)。