2012-11-09 109 views
3

在我们正在构建的网站页面上,http://ovsd.nutrislice.com/wellness/,pdf下载链接(“下载问题”)在Chrome浏览器的PDF查看器中加载但在所有其他浏览器触发下载。右键单击+“另存为”在Chrome中可用。我意识到Chrome是唯一具有内置默认PDF查看器的浏览器。PDF链接在Chrome浏览器中加载时出现卡住PDF查看器

我想我们可以指示人们右键单击然后“另存为”,但是我想看看是否有人能够看到html或服务器响应中的问题,这会导致chrome失败。

它不是一个传统的传递通过文件下载坐在某个服务器上。我们使用Heroku,并且我正在将数据库存储在数据库中(我意识到这个缺点,但它比现在管理S3上的非现场文件更简单)。我通过Django View动态生成响应,所以我想知道是否在响应头文件中缺少某些东西。

谢谢!

回答

4

看起来像一个坏的内容类型:

Content-Type:('application/pdf', None) 

检查你的代码,你正在分配的内容类型的响应。看起来你正在发送一个元组而不仅仅是application/pdf

+0

感谢您的发现!你钉了它。我不恰当地将mimetypes.guess_type方法的整个返回值(它是一个元组)设置为content_type。 http://docs.python.org/2/library/mimetypes.html#mimetypes.guess_type –

3

就像提到@dgel,你的内容类型不正确:

$ curl -I http://ovsd.nutrislice.com/dbfiles/cms/resources/Vol5_Issue1_5_Dos_and_Donts_for_Supermarket_Survival.pdf 
HTTP/1.1 200 OK 
Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE 
Access-Control-Allow-Origin: * 
Cache-Control: max-age=90000 
Content-Type: ('application/pdf', None)  # <- Incorrect 
Date: Fri, 09 Nov 2012 19:25:06 GMT 
Expires: Fri, 09 Nov 2012 23:20:28 GMT 
Last-Modified: Thu, 08 Nov 2012 22:20:28 GMT 
Server: gunicorn/0.14.6 
Connection: keep-alive 

此外,它可能是添加Content-Length头一个好主意。

+0

好的提示内容长度。有趣的讨论内容长度标题在这里:http://tech.hickorywind.org/articles/2008/05/23/content-length-mostly-does-not-matter-the-reverse-bob-barker-rule我'将它添加到我要做的事情列表中,因为它很容易设置。 –

相关问题