如何查找从nginx返回的无效内容类型?
问题描述:
我们使用Twilio的API(使用TwiML),并通过我们的标准Rails/Passenger/nginx堆栈为它们提供“.wav”文件。然而,我遇到了一个问题 - 根据Twilio的说法,我们的服务器发送.wav文件的“application/octet-stream”,而不是所需的“audio/wav”。如何查找从nginx返回的无效内容类型?
我已经确保两个Rails(在mime_types初始值设定项中)和nginx(在mime.types文件中)都有适当的MIME类型。然而,Twilio大约有一半时间报告说,由于“application/octet-stream”MIME类型,无法检索文件。另一半时间,它工作正常。
有没有人经历过这样的行为?
答
我可能终于清除了这个问题了......我修改了我们的动词,使用完整的URL而不是路径,并且在这些URL中使用了HTTP协议。
# Old
<Play>/assets/path/to/file.wav</Play>
# New
<Play>http://server.com/assets/path/to/file.wav</Play>
我不知道它是否转移到HTTP,或转移到URL,但我的错误率立刻从50%左右下降至0%。如果有人知道为什么会出现这种情况,或者他们有其他解决方案,我会将其留作其他答案。