• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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
Спасибо огромное, всё работает!
 
Сверху Снизу