• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Импортирования JQuery через SPIFFS

RtroN

New member
Делаю веб сервер на базе esp8266, хочу сделать что то в роде того что бы пользователь подключался к вай фай сети, его перебрасывало на captive portal на котором он мог оставить некий текст, который сохранялся в памяти платы и выводился на главную страницу. Импортировать JQuery не получается. Почему такая сложность? Потому что я хочу сделать это всё без подключения к интернету, поэтому через интернет его импортировать не получится, хотя так на много легче. Подскажите пожалуйста, как переделать мой кусочек кода, что бы оно импортирвалось?

Код esp:

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <FS.h>

ESP8266WebServer server;
char* ssid = "TP-LINK_03E4";
char* password = "42291404";

void setup()
{
SPIFFS.begin();
WiFi.begin(ssid,password);
Serial.begin(115200);
while(WiFi.status()!=WL_CONNECTED)
{
Serial.print(".");
delay(500);
}
Serial.println("");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
server.onNotFound([]()
{
server.send(404, "text/plain", "FileNotFound");
});
server.on("/",serverIndexFile);
server.begin();
}

void loop()
{
server.handleClient();
}

void serverIndexFile()
{
File file = SPIFFS.open("/index.htm","r");
server.streamFile(file, "text/html");
file.close();
File filejs = SPIFFS.open("/jquery.js","r");
server.streamFile(filejs, "application/javascript");
filejs.close();
}


Код html:

<!DOCTYPE HTML>
<html lang='en'>
<head>
<script src="jquery.js"></script>
<meta charset='utf-8'>
<meta name='viewport' content='width=device-width, initial-scale=1'>
</head>
<body>
<h1>Ввод:</h1>
<input type='text' name='input' id='input' size=2 autofocus>
<div>
<br><button id='send_button'>Send</button>
</div>
<script>
var input;
$('#send_button').click(function(e){
e.preventDefault();
input = $('#input').val();
$.get('/send?input=' + input, function(data){
console.log(data);
});
});
</script>
</body>
</HTML>
 

enjoynering

Well-known member
засуньте загрузку ЛЮБЫХ файлов с SPIFFS в обработчик server.onNotFound(); а уж если файл на SPIFFS не оказался тогда выводите 404.


пы.сы. SPIFFS устарела, Arduino EPS8266 переходит на LittleFS. просто поменяйте все SPIFFS на LittleFS. Файлы придется перелазить с помощью
upload plugin
 

RtroN

New member
засуньте загрузку ЛЮБЫХ файлов с SPIFFS в обработчик server.onNotFound(); а уж если файл на SPIFFS не оказался тогда выводите 404.


пы.сы. SPIFFS устарела, Arduino EPS8266 переходит на LittleFS. просто поменяйте все SPIFFS на LittleFS. Файлы придется перелазить с помощью
upload plugin
Спасибо огромное, всё работает!
 
Сверху Снизу