You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ESP32搭建WebServer时页面出现<app-content>和<style>标签的原因排查

ESP32 WebServer空白页面出现额外标签的问题解答

问题场景

我在ESP32上使用WebServer.h、ESPmDNS.h和WebSocketsServer.h搭建仪表盘WebServer,核心代码如下:

初始化服务器的代码:

void setupServer(std::string ssid, std::string password)
{
    WiFi.begin(ssid.c_str(), password.c_str());

    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
    }

    Serial.print("connected\n");
    Serial.print("IP address: ");
    Serial.print(WiFi.localIP());

    if (!MDNS.begin("esp32")) {
        Serial.println("Error setting up MDNS responder!");
        while (1) {
            delay(1000);
        }
    }
    Serial.println("mDNS responder started");
    SPIFFS.begin();
    server.on("/", serveIndexFile);
    server.begin();
    webSocket.begin();
    webSocket.onEvent(webSocketEvent);
}

从SPIFFS发送静态文件的方法:

void serveIndexFile() {
    File file = SPIFFS.open("/index.html", "r");
    server.streamFile(file, "text/html");
    file.close();
}

即使使用完全空白的index.html文件,在电脑浏览器中检查页面时,仍会出现<app-content>和<style>标签,但手机端打开页面时没有这个现象,怀疑是浏览器扩展导致,想知道这是什么、原因是什么。

解答

  • 这确实是浏览器扩展注入的内容,和你的ESP32代码完全无关。
  • 很多浏览器扩展(比如广告拦截器、隐私保护插件、页面美化工具、AI辅助浏览插件甚至VPN扩展)会在页面加载时,通过JavaScript动态修改页面的DOM结构,插入自定义标签、样式或脚本,来实现它们的功能。空白页面没有原有内容,这些注入的元素就会直接暴露出来。
  • 手机端浏览器默认安装的扩展很少,或者你没装相关插件,所以不会出现这种情况。
  • 验证方法很简单:打开浏览器的无痕/隐私模式(该模式下默认禁用所有扩展),再访问ESP32页面,这些额外标签应该就会消失。如果确认是扩展导致,可以逐个禁用已安装的扩展,排查出具体是哪一个插件在搞鬼。

内容的提问来源于stack exchange,提问作者Johnny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 09:01:12