【问题标题】:alternative to file(1) for javascript/css mimetypejavascript/css mimetype 的 file(1) 替代品
【发布时间】:2010-12-19 12:25:38
【问题描述】:
在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
有人得到类似的结果吗?更好的结果?有人知道替代方案吗?
谢谢
【问题讨论】:
标签:
javascript
css
file
mime
【解决方案1】:
我不认为 file(1) 命令可以做到这一点。 “文件”命令在文件中查找魔术字符串 - 例如GIF 文件开头的字符串“GIF89a”。 CSS 和 JS 文件不能像这样自我识别,所以你必须做一些更复杂的事情。
如果您可以访问服务器返回的 Content-Type 标头,那将比通过查看文件内容来猜测类型可靠得多。
如果您只有文件内容,您可以自行搜索不太可能出现在 CSS 文件中的字符串,例如“function”或“var”。如果你找到它们,它可能是 JavaScript。当然,这是一种不完美的启发式方法 - 可能有一个名为“function.png”的背景图像。
换一种方式更容易出错,因为 JavaScript 可以操纵 CSS 样式……在 JS 文件中找到诸如“text-decoration”之类的 CSS 属性并不罕见。
或者您可以尝试通过 CSS 或 JS 解析器运行该文件。如果您在解析为 CSS 时遇到大量错误,则可能不是 CSS 文件 :)。