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

gaicitadie · 2020年04月29日 · 最后由 pynix 回复于 2020年05月03日 · 1421 次阅读
respond_to do |format|
    format.rss
end

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

disposition

hooopo 回复

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

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 的

zhuoerri 回复

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

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

pynix 回复

昨天改到 xml 出现 406 错误

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

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

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

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

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册