Rails 怎样才能让 format.rss 生成的 rss 页面点击的时候不直接下载呢?

gaicitadie · April 29, 2020 · Last by pynix replied at May 03, 2020 · 3443 hits
respond_to do |format|
    format.rss
end

这种方式渲染的 rss 页面,当点击它的时候,浏览器会当做文件下载,而不是当做页面显示,怎样才能杜绝这种情况的发生呢?

disposition

Reply to hooopo

加在什么地方啊?搜了半天只搜到在 send_file 里面加 disposition 的

Reply to gaicitadie

我也不知道啊 你找找 反正就是 content type 的事儿

感谢回复

真的没辙了,用的

respond_to do |format|
    format.rss
end

模板文件用的 feed.rss.builder,从开发者工具里看到返回的 content_type 是:application/rss+xml

https://ruby-china.org/topics/feed 返回的 content_type 是:application/xml

除此之外,没有差别,等有缘的大大来指点迷津吧。

发 Response Header 截图呗,这样说不清楚

如果你确定是 content-type 的问题,可以用 response.headers 来设置 headers

这个是我的:

这个是 ruby-china 的

Reply to zhuoerri

是 content-type 问题,多谢大大指点迷津,用您这个方法解决了

用 format.xml 不香妈?非要具体到 rss 干啥。。。

Reply to pynix

昨天改到 xml 出现 406 错误

出现 406 的原因找到了,routes.rb 里面也需要改设置

不过即便如此,用 format.xml,模板改成 xml.builder,返回的 content-type 仍然是 application/rss+xml,仍然需要用 7 楼的方法指定 Content-Type。

还是用 format.rss 吧,毕竟模板根节点是用的

rss 又不会用浏览器地址栏直接打开,对阅读器来说,下载不下载没有任何区别吧,楼主强迫症?

You need to Sign in before reply, if you don't have an account, please Sign up first.