<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.doge24190.top/index.php?action=history&amp;feed=atom&amp;title=Miniflux%E8%84%9A%E6%9C%AC%E5%BC%82%E5%B8%B8</id>
	<title>Miniflux脚本异常 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.doge24190.top/index.php?action=history&amp;feed=atom&amp;title=Miniflux%E8%84%9A%E6%9C%AC%E5%BC%82%E5%B8%B8"/>
	<link rel="alternate" type="text/html" href="https://wiki.doge24190.top/index.php?title=Miniflux%E8%84%9A%E6%9C%AC%E5%BC%82%E5%B8%B8&amp;action=history"/>
	<updated>2026-06-11T16:52:12Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.doge24190.top/index.php?title=Miniflux%E8%84%9A%E6%9C%AC%E5%BC%82%E5%B8%B8&amp;diff=22&amp;oldid=prev</id>
		<title>2026年6月11日 (四) 11:22 Doge24190</title>
		<link rel="alternate" type="text/html" href="https://wiki.doge24190.top/index.php?title=Miniflux%E8%84%9A%E6%9C%AC%E5%BC%82%E5%B8%B8&amp;diff=22&amp;oldid=prev"/>
		<updated>2026-06-11T11:22:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年6月11日 (四) 19:22的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l225&quot;&gt;第225行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第225行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[分类:RSS]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[分类:RSS]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[分类:Docker]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[分类:Docker]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[分类:Cloudflare]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Doge24190</name></author>
	</entry>
	<entry>
		<id>https://wiki.doge24190.top/index.php?title=Miniflux%E8%84%9A%E6%9C%AC%E5%BC%82%E5%B8%B8&amp;diff=20&amp;oldid=prev</id>
		<title>2026年6月11日 (四) 11:20 Doge24190</title>
		<link rel="alternate" type="text/html" href="https://wiki.doge24190.top/index.php?title=Miniflux%E8%84%9A%E6%9C%AC%E5%BC%82%E5%B8%B8&amp;diff=20&amp;oldid=prev"/>
		<updated>2026-06-11T11:20:31Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年6月11日 (四) 19:20的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l222&quot;&gt;第222行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第222行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;如果自建服务后台页面出现“按钮点击无反应”“没有请求发出”“URL 只多了 #”这类现象，不要只盯着后端日志，也要第一时间检查浏览器 Console。很多时候，真正的问题发生在前端脚本执行阶段。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;如果自建服务后台页面出现“按钮点击无反应”“没有请求发出”“URL 只多了 #”这类现象，不要只盯着后端日志，也要第一时间检查浏览器 Console。很多时候，真正的问题发生在前端脚本执行阶段。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[分类:技术博客]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[分类:RSS]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[分类:Docker]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Doge24190</name></author>
	</entry>
	<entry>
		<id>https://wiki.doge24190.top/index.php?title=Miniflux%E8%84%9A%E6%9C%AC%E5%BC%82%E5%B8%B8&amp;diff=19&amp;oldid=prev</id>
		<title>Doge24190：​创建页面，内容为“最近在自建 Miniflux 时遇到一个比较隐蔽的问题：API Key 本身已经可以正常使用，但在 Miniflux 后台页面中点击 &lt;abbr&gt;API&lt;/abbr&gt; Key 后面的“移除”按钮时，始终无法删除。  这个问题一开始看起来像是 Miniflux 的 API、反向代理、Cookie、BASE_&lt;abbr&gt;URL&lt;/abbr&gt; 或权限问题，但最后发现真正原因是：  * Cloudflare 开启了 Rocket Loader； * Rocket Loader 向 Miniflux 页面注入了脚本…”</title>
		<link rel="alternate" type="text/html" href="https://wiki.doge24190.top/index.php?title=Miniflux%E8%84%9A%E6%9C%AC%E5%BC%82%E5%B8%B8&amp;diff=19&amp;oldid=prev"/>
		<updated>2026-06-11T11:19:26Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“最近在自建 Miniflux 时遇到一个比较隐蔽的问题：API Key 本身已经可以正常使用，但在 Miniflux 后台页面中点击 &amp;lt;abbr&amp;gt;API&amp;lt;/abbr&amp;gt; Key 后面的“移除”按钮时，始终无法删除。  这个问题一开始看起来像是 Miniflux 的 API、反向代理、Cookie、BASE_&amp;lt;abbr&amp;gt;URL&amp;lt;/abbr&amp;gt; 或权限问题，但最后发现真正原因是：  * Cloudflare 开启了 Rocket Loader； * Rocket Loader 向 Miniflux 页面注入了脚本…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;最近在自建 Miniflux 时遇到一个比较隐蔽的问题：API Key 本身已经可以正常使用，但在 Miniflux 后台页面中点击 &amp;lt;abbr&amp;gt;API&amp;lt;/abbr&amp;gt; Key 后面的“移除”按钮时，始终无法删除。&lt;br /&gt;
&lt;br /&gt;
这个问题一开始看起来像是 Miniflux 的 API、反向代理、Cookie、BASE_&amp;lt;abbr&amp;gt;URL&amp;lt;/abbr&amp;gt; 或权限问题，但最后发现真正原因是：&lt;br /&gt;
&lt;br /&gt;
* Cloudflare 开启了 Rocket Loader；&lt;br /&gt;
* Rocket Loader 向 Miniflux 页面注入了脚本；&lt;br /&gt;
* Miniflux 的 Content Security Policy 阻止了该脚本；&lt;br /&gt;
* 页面 JavaScript 行为异常，导致删除按钮无法正常发起请求。&lt;br /&gt;
&lt;br /&gt;
== 问题现象 ==&lt;br /&gt;
环境大致如下：&lt;br /&gt;
&lt;br /&gt;
* Miniflux 使用 Docker 部署；使用端口8043&lt;br /&gt;
* 通过反向代理暴露到域名；&lt;br /&gt;
* 域名经过 Cloudflare；&lt;br /&gt;
* Miniflux 后台地址类似：&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://miniflux.example.com/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
一开始测试 &amp;lt;abbr&amp;gt;API&amp;lt;/abbr&amp;gt; Key 时返回：&lt;br /&gt;
 {&amp;quot;error_message&amp;quot;:&amp;quot;access unauthorized&amp;quot;}&lt;br /&gt;
后来确认 &amp;lt;abbr&amp;gt;API&amp;lt;/abbr&amp;gt; Key 问题已经解决，使用如下方式可以正常访问 API：&lt;br /&gt;
 curl -i \&lt;br /&gt;
   -H &amp;quot;X-Auth-Token: 你的API_KEY&amp;quot; \&lt;br /&gt;
   &amp;lt;nowiki&amp;gt;http://127.0.0.1:8043/v1/me&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
但是在 Miniflux 后台的 &amp;lt;abbr&amp;gt;API&amp;lt;/abbr&amp;gt; Keys 页面，点击“移除”按钮仍然没有反应。&lt;br /&gt;
&lt;br /&gt;
== 初步排查 ==&lt;br /&gt;
首先检查 Miniflux 服务是否正常：&lt;br /&gt;
 curl -i &amp;lt;nowiki&amp;gt;http://127.0.0.1:8043/healthcheck&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
返回：&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 &lt;br /&gt;
 OK&lt;br /&gt;
说明服务本身正常。&lt;br /&gt;
&lt;br /&gt;
继续测试 &amp;lt;abbr&amp;gt;API&amp;lt;/abbr&amp;gt; 路径：&lt;br /&gt;
 curl -i &amp;lt;nowiki&amp;gt;http://127.0.0.1:8043/v1/me&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
返回：&lt;br /&gt;
 HTTP/1.1 401 Unauthorized&lt;br /&gt;
 &lt;br /&gt;
 {&amp;quot;error_message&amp;quot;:&amp;quot;access unauthorized&amp;quot;}&lt;br /&gt;
这里的 401 是正常的，因为没有携带认证信息。它反而说明：&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/v1/me&amp;lt;/code&amp;gt; 路径存在；&lt;br /&gt;
* &amp;lt;abbr&amp;gt;API&amp;lt;/abbr&amp;gt; 路径没有 404；&lt;br /&gt;
* Miniflux &amp;lt;abbr&amp;gt;API&amp;lt;/abbr&amp;gt; 服务是可访问的。&lt;br /&gt;
&lt;br /&gt;
再测试错误的子路径：&lt;br /&gt;
 curl -i &amp;lt;nowiki&amp;gt;http://127.0.0.1:8043/rss/v1/me&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
返回类似：&lt;br /&gt;
 HTTP/1.1 302 Found&lt;br /&gt;
 Location: /?redirect_url=%2Frss%2Fv1%2Fme&lt;br /&gt;
这说明 &amp;lt;code&amp;gt;/rss/v1/me&amp;lt;/code&amp;gt; 被当作普通网页路径处理，并不是正确的 &amp;lt;abbr&amp;gt;API&amp;lt;/abbr&amp;gt; 路径。&lt;br /&gt;
&lt;br /&gt;
因此可以判断：本例中 &amp;lt;abbr&amp;gt;API&amp;lt;/abbr&amp;gt; 正确路径应为：&lt;br /&gt;
 /v1/me&lt;br /&gt;
而不是：&lt;br /&gt;
 /rss/v1/me&lt;br /&gt;
&lt;br /&gt;
== 验证后台删除能力 ==&lt;br /&gt;
为了确认后端是否真的可以删除 &amp;lt;abbr&amp;gt;API&amp;lt;/abbr&amp;gt; Key，可以绕过网页，直接使用 &amp;lt;abbr&amp;gt;API&amp;lt;/abbr&amp;gt; 删除。&lt;br /&gt;
&lt;br /&gt;
先列出 &amp;lt;abbr&amp;gt;API&amp;lt;/abbr&amp;gt; Keys：&lt;br /&gt;
 curl -i -u &amp;#039;你的用户名:你的密码&amp;#039; \&lt;br /&gt;
   &amp;lt;nowiki&amp;gt;http://127.0.0.1:8043/v1/api-keys&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
找到要删除的 Key ID 后执行：&lt;br /&gt;
 curl -i -X DELETE -u &amp;#039;你的用户名:你的密码&amp;#039; \&lt;br /&gt;
   &amp;lt;nowiki&amp;gt;http://127.0.0.1:8043/v1/api-keys/要删除的ID&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
如果返回：&lt;br /&gt;
 HTTP/1.1 204 No Content&lt;br /&gt;
说明 Miniflux 后端删除功能是正常的。&lt;br /&gt;
&lt;br /&gt;
这时问题就不在数据库，也不在 &amp;lt;abbr&amp;gt;API&amp;lt;/abbr&amp;gt; Key 本身，而更可能在网页前端、浏览器、反向代理或 CDN 层。&lt;br /&gt;
&lt;br /&gt;
== 关键线索：点击按钮后没有任何请求 ==&lt;br /&gt;
接着打开浏览器开发者工具：&lt;br /&gt;
&lt;br /&gt;
# 切换到 &amp;lt;code&amp;gt;Network&amp;lt;/code&amp;gt; 面板；&lt;br /&gt;
# 点击 &amp;lt;abbr&amp;gt;API&amp;lt;/abbr&amp;gt; Key 后面的“移除”按钮；&lt;br /&gt;
# 观察是否有新的请求发出。&lt;br /&gt;
&lt;br /&gt;
结果发现：&lt;br /&gt;
&lt;br /&gt;
* 点击按钮后没有任何新的网络请求；&lt;br /&gt;
* 页面 &amp;lt;abbr&amp;gt;URL&amp;lt;/abbr&amp;gt; 只是从：&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://miniflux.example.com/keys&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
变成了：&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://miniflux.example.com/keys#&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
这个现象非常关键。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; 只是页面锚点变化，说明点击的是类似这样的前端链接：&lt;br /&gt;
 &amp;lt;&amp;#039;&amp;#039;&amp;#039;a&amp;#039;&amp;#039;&amp;#039; href=&amp;quot;#&amp;quot;&amp;gt;移除&amp;lt;/&amp;#039;&amp;#039;&amp;#039;a&amp;#039;&amp;#039;&amp;#039;&amp;gt;&lt;br /&gt;
正常情况下，页面 JavaScript 应该拦截这个点击事件，然后发起删除请求。&lt;br /&gt;
&lt;br /&gt;
但现在只出现了 &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;，没有发请求，说明 JavaScript 没有正常执行。&lt;br /&gt;
&lt;br /&gt;
== 控制台报错 ==&lt;br /&gt;
继续查看浏览器开发者工具里的 &amp;lt;code&amp;gt;Console&amp;lt;/code&amp;gt; 面板，发现如下报错：&lt;br /&gt;
 Refused to load &amp;lt;nowiki&amp;gt;https://miniflux.example.com/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js&amp;lt;/nowiki&amp;gt; because it does not appear in the script-src directive of the Content Security Policy.&lt;br /&gt;
这个错误说明：&lt;br /&gt;
&lt;br /&gt;
* Cloudflare 正在向页面注入 Rocket Loader 脚本；&lt;br /&gt;
* Miniflux 页面设置了 Content Security Policy；&lt;br /&gt;
* CSP 不允许加载 Cloudflare 注入的 &amp;lt;code&amp;gt;rocket-loader.min.js&amp;lt;/code&amp;gt;；&lt;br /&gt;
* 浏览器拒绝加载该脚本；&lt;br /&gt;
* 页面脚本执行受到影响。&lt;br /&gt;
&lt;br /&gt;
最终确认，这就是后台按钮失效的原因。&lt;br /&gt;
&lt;br /&gt;
== 解决方法 ==&lt;br /&gt;
进入 Cloudflare 后台，关闭 Rocket Loader。&lt;br /&gt;
&lt;br /&gt;
大致路径为：&lt;br /&gt;
 Cloudflare Dashboard&lt;br /&gt;
   -&amp;gt; 选择对应域名&lt;br /&gt;
   -&amp;gt; Speed&lt;br /&gt;
   -&amp;gt; Optimization&lt;br /&gt;
   -&amp;gt; Rocket Loader&lt;br /&gt;
   -&amp;gt; Off&lt;br /&gt;
如果不想影响整个域名，可以只针对 Miniflux 子域名关闭 Rocket Loader，例如：&lt;br /&gt;
 Hostname equals miniflux.example.com&lt;br /&gt;
 Rocket Loader = Off&lt;br /&gt;
关闭后建议再执行以下操作：&lt;br /&gt;
&lt;br /&gt;
# 清理 Cloudflare 缓存；&lt;br /&gt;
# 浏览器按 &amp;lt;code&amp;gt;Ctrl + F5&amp;lt;/code&amp;gt; 强制刷新；&lt;br /&gt;
# 或者使用无痕窗口重新登录；&lt;br /&gt;
# 再次进入 Miniflux 后台 &amp;lt;abbr&amp;gt;API&amp;lt;/abbr&amp;gt; Keys 页面；&lt;br /&gt;
# 点击“移除”按钮。&lt;br /&gt;
&lt;br /&gt;
此时删除按钮恢复正常。&lt;br /&gt;
&lt;br /&gt;
== 为什么这个问题容易误判 ==&lt;br /&gt;
这个问题容易被误判为以下几类问题：&lt;br /&gt;
&lt;br /&gt;
=== 1. API Key 错误 ===&lt;br /&gt;
因为最开始 &amp;lt;abbr&amp;gt;API&amp;lt;/abbr&amp;gt; 返回过：&lt;br /&gt;
 {&amp;quot;error_message&amp;quot;:&amp;quot;access unauthorized&amp;quot;}&lt;br /&gt;
但这个错误只代表认证失败，不代表后台删除按钮的问题。&lt;br /&gt;
&lt;br /&gt;
正确测试方式是带上 &amp;lt;code&amp;gt;X-Auth-Token&amp;lt;/code&amp;gt;：&lt;br /&gt;
 curl -i \&lt;br /&gt;
   -H &amp;quot;X-Auth-Token: 你的API_KEY&amp;quot; \&lt;br /&gt;
   &amp;lt;nowiki&amp;gt;http://127.0.0.1:8043/v1/me&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. 反向代理路径错误 ===&lt;br /&gt;
如果访问 &amp;lt;code&amp;gt;/v1/me&amp;lt;/code&amp;gt; 返回 404，确实可能是路径或反代问题。&lt;br /&gt;
&lt;br /&gt;
但本例中：&lt;br /&gt;
 curl -i &amp;lt;nowiki&amp;gt;http://127.0.0.1:8043/v1/me&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
返回的是 401，而不是 404。&lt;br /&gt;
&lt;br /&gt;
这说明 &amp;lt;abbr&amp;gt;API&amp;lt;/abbr&amp;gt; 路径是存在的，只是没有认证。&lt;br /&gt;
&lt;br /&gt;
=== 3. BASE_URL 配置错误 ===&lt;br /&gt;
Miniflux 的 &amp;lt;code&amp;gt;BASE_&amp;lt;abbr&amp;gt;URL&amp;lt;/abbr&amp;gt;&amp;lt;/code&amp;gt; 确实很重要，尤其是经过域名、HTTPS 或子路径访问时。&lt;br /&gt;
&lt;br /&gt;
例如独立子域名部署时：&lt;br /&gt;
 &amp;#039;&amp;#039;environment&amp;#039;&amp;#039;:&lt;br /&gt;
   - BASE_URL=&amp;lt;nowiki&amp;gt;https://miniflux.example.com/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
如果是子路径部署，例如：&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://example.com/miniflux/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
则应配置为：&lt;br /&gt;
 &amp;#039;&amp;#039;environment&amp;#039;&amp;#039;:&lt;br /&gt;
   - BASE_URL=&amp;lt;nowiki&amp;gt;https://example.com/miniflux/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
但本例中，最终故障点并不是 &amp;lt;code&amp;gt;BASE_&amp;lt;abbr&amp;gt;URL&amp;lt;/abbr&amp;gt;&amp;lt;/code&amp;gt;，而是 Cloudflare Rocket Loader 注入脚本与 CSP 冲突。&lt;br /&gt;
&lt;br /&gt;
=== 4. Docker 内部 IP 异常 ===&lt;br /&gt;
后台会话中看到类似：&lt;br /&gt;
 172.20.0.1&lt;br /&gt;
这通常是 Docker 网桥或反向代理容器的 IP，不一定是故障。&lt;br /&gt;
&lt;br /&gt;
如果需要让 Miniflux 识别真实客户端 IP，可以检查反向代理 Header：&lt;br /&gt;
 proxy_set_header Host $host;&lt;br /&gt;
 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
 proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
必要时还可以配置 Miniflux 信任反代网络：&lt;br /&gt;
 &amp;#039;&amp;#039;environment&amp;#039;&amp;#039;:&lt;br /&gt;
   - TRUSTED_REVERSE_PROXY_NETWORKS=172.20.0.0/16&lt;br /&gt;
但这同样不是本次删除按钮失效的根因。&lt;br /&gt;
&lt;br /&gt;
== 推荐排查流程 ==&lt;br /&gt;
如果你也遇到 Miniflux 后台按钮无反应，可以按这个顺序排查：&lt;br /&gt;
&lt;br /&gt;
=== 第一步：确认 API 是否正常 ===&lt;br /&gt;
 curl -i &amp;lt;nowiki&amp;gt;http://127.0.0.1:8043/healthcheck&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 curl -i &amp;lt;nowiki&amp;gt;http://127.0.0.1:8043/v1/me&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
如果 &amp;lt;code&amp;gt;/healthcheck&amp;lt;/code&amp;gt; 返回 200，&amp;lt;code&amp;gt;/v1/me&amp;lt;/code&amp;gt; 返回 401，说明服务和 &amp;lt;abbr&amp;gt;API&amp;lt;/abbr&amp;gt; 路径基本正常。&lt;br /&gt;
&lt;br /&gt;
=== 第二步：确认认证是否正常 ===&lt;br /&gt;
使用 Basic Auth 测试：&lt;br /&gt;
 curl -i -u &amp;#039;你的用户名:你的密码&amp;#039; \&lt;br /&gt;
   &amp;lt;nowiki&amp;gt;http://127.0.0.1:8043/v1/me&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
使用 &amp;lt;abbr&amp;gt;API&amp;lt;/abbr&amp;gt; Key 测试：&lt;br /&gt;
 curl -i \&lt;br /&gt;
   -H &amp;quot;X-Auth-Token: 你的API_KEY&amp;quot; \&lt;br /&gt;
   &amp;lt;nowiki&amp;gt;http://127.0.0.1:8043/v1/me&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 第三步：检查浏览器 Network ===&lt;br /&gt;
点击按钮后，如果完全没有请求发出，只是 &amp;lt;abbr&amp;gt;URL&amp;lt;/abbr&amp;gt; 多了一个 &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;，说明问题大概率在前端 JavaScript。&lt;br /&gt;
&lt;br /&gt;
=== 第四步：检查 Console ===&lt;br /&gt;
如果看到类似：&lt;br /&gt;
 Refused to load ... rocket-loader.min.js ...&lt;br /&gt;
 Content Security Policy&lt;br /&gt;
就优先检查 Cloudflare Rocket Loader。&lt;br /&gt;
&lt;br /&gt;
=== 第五步：关闭 Rocket Loader ===&lt;br /&gt;
关闭后强制刷新页面，再测试后台按钮。&lt;br /&gt;
&lt;br /&gt;
== 总结 ==&lt;br /&gt;
这次问题的核心不是 Miniflux API，也不是 &amp;lt;abbr&amp;gt;API&amp;lt;/abbr&amp;gt; Key 本身，而是 Cloudflare Rocket Loader 与 Miniflux 页面 CSP 冲突。&lt;br /&gt;
&lt;br /&gt;
最终表现为：&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;abbr&amp;gt;API&amp;lt;/abbr&amp;gt; Key 可以正常使用；&lt;br /&gt;
* 后台点击“移除”按钮没有请求发出；&lt;br /&gt;
* &amp;lt;abbr&amp;gt;URL&amp;lt;/abbr&amp;gt; 只从 &amp;lt;code&amp;gt;/keys&amp;lt;/code&amp;gt; 变成 &amp;lt;code&amp;gt;/keys#&amp;lt;/code&amp;gt;；&lt;br /&gt;
* 控制台出现 Rocket Loader 被 CSP 拒绝加载的错误；&lt;br /&gt;
* 关闭 Cloudflare Rocket Loader 后问题解决。&lt;br /&gt;
&lt;br /&gt;
如果自建服务后台页面出现“按钮点击无反应”“没有请求发出”“URL 只多了 #”这类现象，不要只盯着后端日志，也要第一时间检查浏览器 Console。很多时候，真正的问题发生在前端脚本执行阶段。&lt;/div&gt;</summary>
		<author><name>Doge24190</name></author>
	</entry>
</feed>