必须用type="application/rss+xml",写成text/xml或漏掉type则浏览器不识别rss源;href需为根相对路径如/feed.xml,且rss文件须合法xml、返回200状态码并含正确声明与结构。

link标签加RSS必须用type="application/rss+xml"
浏览器只认这个MIME类型才能把链接识别为RSS源,写成 text/xml 或漏掉 type 属性,订阅按钮根本不会出现。主流阅读器(如Feedly、Inoreader)也依赖这个字段做自动发现。
常见错误:
- 把 type 写成 application/atom+xml(那是Atom,不是RSS)
- 用 rel="alternate" 却没配 type,等于白写
- 路径指向404或返回非XML内容(比如HTML首页),浏览器会静默忽略
<link rel="alternate" type="application/rss+xml" title="博客更新" href="/feed.xml">- href 必须是绝对路径或根相对路径(如
/feed.xml),不能是./feed.xml - title 建议简短明确,部分阅读器会直接显示这个文字作为订阅源名称
RSS文件本身要符合XML格式且可被公开访问
哪怕 link 标签写对了,如果后端返回的RSS文件不是合法XML(比如PHP生成时开头多了一个空格、BOM头没处理),或者服务器返回了302跳转、403权限拒绝,浏览器和阅读器都会放弃解析。
验证方法很简单:直接在浏览器打开 href 指向的地址,看能不能正常显示XML结构,且HTTP状态码是200。
- 检查XML声明是否在首行:
<?xml version="1.0" encoding="UTF-8"?> - 根节点必须是
<rss version="2.0"></rss>,不是<feed></feed>(那是Atom) - 确保所有标签闭合,特殊字符(如
&)已转义为& - 如果用Nginx/Apache,确认静态文件路径没被重写规则拦截
多个RSS源怎么共存?靠title和href区分
一个页面可以放多个 link,比如按分类提供不同RSS:/feed-tech.xml、/feed-life.xml。浏览器通常只显示第一个,但阅读器(尤其是桌面端)会列出全部供手动选择。
- 每个
link的title必须不同,否则用户无法分辨 - 不要重复使用相同
href,否则会被去重 - 移动端Safari对多个RSS支持较弱,建议主推一个通用源
Chrome/Firefox新版不再显示地址栏RSS图标,但阅读器仍能自动发现
从2022年起,Chrome移除了原生RSS图标,Firefox也在后续版本中隐藏了UI入口。但这不代表 link 失效——只要标签正确,Feedly、Reeder、NetNewsWire等工具启动时仍会抓取并加载。
真正影响发现率的是:
- 页面HTML是否在首次加载时就包含该 link(服务端渲染优先)
- RSS文件响应时间超过5秒,部分阅读器会超时放弃
- HTTPS页面里混用HTTP的 href,会被浏览器主动屏蔽
实际部署时最容易卡在RSS文件生成环节:模板漏了闭合标签、时间字段格式不对(必须是RFC 2822)、<guid></guid> 重复,这些都不会报JS错误,但会让整个feed被判定为无效。调试时别只盯着HTML,先用W3C Feed Validation Service跑一遍 href 地址。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











