首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在这段代码中准备HTML页面?

如何在这段代码中准备HTML页面?
EN

Stack Overflow用户
提问于 2022-11-16 18:17:51
回答 1查看 21关注 0票数 0

我想在这个脚本里放一个已经制作好的网站,这样我就不用再写整个网站了

ESP32器件模型

代码语言:javascript
复制
#include <WiFi.h>
#include <DNSServer.h>
#include <WebServer.h>

const byte DNS_PORT = 53;
IPAddress apIP(172, 217, 28, 1);
DNSServer dnsServer;
WebServer webServer(80);

String responseHTML = ****""
                      "<!DOCTYPE html><html lang='en'><head>"
                      "<meta name='viewport' content='width=device-width'>"
                      "<title>CaptivePortal</title></head><body>"
                      "<h1>Hello World!</h1><p>This is a captive portal example."
                      " All requests will be redirected here.</p></body></html>";***
void setup() {
  WiFi.mode(WIFI_AP);
  WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));
  WiFi.softAP("Vodafone");

  // if DNSServer is started with "*" for domain name, it will reply with
  // provided IP to all DNS request
  dnsServer.start(DNS_PORT, "*", apIP);

  // replay to all requests with same HTML
  webServer.onNotFound([]() {
    webServer.send(200, "text/html", responseHTML);
  });
  webServer.begin();
}

void loop() {
  dnsServer.processNextRequest();
  webServer.handleClient();
}

在运行代码时,它将使用所编写的html创建站点。

但是我想放一个更完整的html,而不必写这整个站点的行。

也就是说,就好像我们将文件导入到脚本中一样?

EN

回答 1

Stack Overflow用户

发布于 2022-11-17 03:44:01

ESP允许您将Flash内存的一部分划分为用于数据存储的文件系统,它可以用于保存html、css、Javascript文件等内容,并在需要时检索它。

  1. 下载Arduino ESP32文件系统上传器并按照README.md上的说明将上传插件安装到您的Arduino IDE中。
  2. 在Arduino项目下创建一个data目录,并将所有html文件、css和JavaScript放到目录中。
  3. 在Arduino IDE上,如果需要,选择Tools > Partition来调整Sketch和FATFS之间的内存分配(即data目录所需的大小)。
  4. 选择Tools > ESP32素描数据上传菜单项。这将开始将文件上载到ESP32闪存文件系统中。这并不是上传你的素描,但你仍然需要上传你的素描像往常一样。
  5. 关于如何从ESP32文件系统中提供页面,我建议您切换到使用ESPAsyncWebServer,因为它允许您从ESP32文件系统中服务器静态内容。例如,您可以在路由index.html上提供主页/,如下所示:
代码语言:javascript
复制
    server.serveStatic("/", SPIFFS, "/")    // first '/' - html route, second '/' - root directory of 'data' directory in LITTLEFS
          .setDefaultFile("index.html")       // set html home page
          .setCacheControl("max-age=86400");  // set cache expire

我有一个关于如何在我的ESP32上使用ESPAsynWebServer为ESPAsynWebServer文件系统提供内容的示例,您可以查看更详细的实现。我的例子是基于LittleFS的with,它已经折旧并被所取代,但是这个API在一般情况下是兼容的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74465362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档