Django:RSS 和 ATOM 提要 Content-Type 标头?
我跟着 本教程适用于 django 的 RSS 和 ATOM 提要,我让它工作了。
然而,测试开发服务器不断让浏览器将提要下载为文件,而不是浏览器将其检测为 xml 文档。
根据我的 HTTP 经验,Content-Type 标头中缺少 mime 类型。
我如何在 django 中指定它?
I followed along this tutorial for django's RSS and ATOM feeds and I got it to work.
However the test development server keeps making the browser download the feeds as a file instead of the browser detecting it as an xml document.
My experience with HTTP tells me that there is a missing mime type in the Content-Type header.
How do I specify that in django?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
Everyblock 源代码中有对此的注释。
他们定义了一个类来替换标准 Django feed 的 mime 类型,如下所示:
There is a comment in the Everyblock source code about this.
They define a class that replaces the mime type of the standard Django feed like so:
您是否使用 rss 的可用视图?
这就是我在 urls.py 中的内容 - 我没有设置任何有关 mimetypes 的内容:
其中published_feeds 类似于
Are you using the available view for rss?
This is what I have in my urls.py - and I am not setting anything about mimetypes:
where published_feeds is something like
当您创建 HTTPReponse 对象时,您可以指定其内容类型:
或者任何实际的内容类型。
请参阅 http://docs.djangoproject。 com/en/dev/ref/request-response/#django.http.HttpResponse.__init__
When you create an HTTPReponse object you can specify its content-type:
Or whatever the content type actually is.
See http://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpResponse.__init__
我猜问题出在 OS X 上的 Camino 浏览器上,而不是 HTTP 标头和 mime 类型上。
当我尝试使用 Safari 时,它成功了。
I guess the problem was with the Camino browser on OS X, not with the HTTP header and mime type.
When I tried on Safari, it worked.
9 年后,我在使用 Firefox 和 Django 2.1 时仍然遇到了这个问题。
上面的解决方案并没有解决它,所以我最终使用了这个:
使用此类而不是
Feed
将 mime-type 设置为所需的“application/rss+xml”。更新
我注意到mime类型“application/xml”已经过时,应该使用“application/rss+xml”。 上面的代码已相应更新,但尚未测试。
I still encountered this problem, 9 years later with Firefox and Django 2.1.
The solutions above didn't cut it, so I ended up using this:
Using this class instead of
Feed
sets the mime-type to 'application/rss+xml' as wanted.Update
It was brought to my attention that mime-type 'application/xml' is outdated, and 'application/rss+xml' should be used instead. The code above was updated accordingly but has yet to be tested.