【问题标题】:Override HTTP server's mime types?覆盖 HTTP 服务器的 mime 类型?
【发布时间】:2016-08-23 11:19:30
【问题描述】:

背景

我正在使用具有内置 Web 服务器的设备(RedLion 的 Graphite HMI),该服务器允许我托管自定义网页,这很棒,但有一个问题。 Web 服务器在它支持的 mime 类型方面非常有限,它假定所有不属于受支持的 mime 类型的内容都应该是 text/html。这太可怕了,因为我无法链接 css 样式表、链接到 pdf 文件等。我可以忍受将我的 css 放在我的 html 文件中,但是 pdf 处理是一个杀手,因为我想为我在设备的网络服务器上运行的软件没有外部链接,以防它部署在无法访问互联网的位置。


问题

那么,在链接样式表时,有什么方法可以覆盖/忽略“a”标签中报告的 mime 类型?

【问题讨论】:

  • 我忘了提一下,我已经尝试将“type”属性添加到我的“a”标签中,但是大多数浏览器都会优先考虑服务器的 mime 类型而不是“a”标签的“type”属性。跨度>

标签: html css webserver mime-types


【解决方案1】:

不,没有。

您可以覆盖 MIME 类型客户端的唯一位置是 XMLHttpRequest 对象(不适用于您的情况)。


但大多数浏览器会优先考虑服务器的 mime 类型而不是“a”标签的“type”属性

这是the specification要求的:

这纯粹是建议性的。该值必须是有效的 MIME 类型。用户代理不得认为类型属性具有权威性——在获取资源时,用户代理不得使用包含在资源链接中的元数据来确定其类型。

它在那里,例如,机器人可以决定不关注链接(因为它指向他们不索引的内容)。

【讨论】:

  • 有什么办法可以用javascript返回原始文件内容并将mime类型设置为pdf?,即:像这样function fixPDFMime(path){$.get(path, function( data ){ console.log(typeof data); window.open("data:application/pdf," + escape(data)); }); }
  • 这一半按原样工作,我最终得到一个空白(它不应该是空白)的 2 页 pdf 文档。
猜你喜欢
  • 2011-03-02
  • 2010-09-10
  • 1970-01-01
  • 2022-08-06
  • 2011-07-28
  • 2011-02-20
  • 2013-04-24
  • 1970-01-01
相关资源
最近更新 更多