Skip to content

Commit 1c78ee2

Browse files
authored
Баг, вместо css грузиться корневая страница (autumn-library#108)
* Пример с багом * Расчет размера контента * Фиккс проблемы с дозагрузка CSS * version * Заглушка для самой худшей ОС.
1 parent ca56c37 commit 1c78ee2

9 files changed

+142
-7
lines changed

example/hwapp/files/styles.css

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
/* Базовые стили */
2+
body {
3+
font-family: 'Arial', sans-serif;
4+
background-color: #f5f5f5;
5+
margin: 0;
6+
padding: 20px;
7+
display: flex;
8+
justify-content: center;
9+
align-items: center;
10+
min-height: 100vh;
11+
}
12+
13+
.container {
14+
background: white;
15+
padding: 30px;
16+
border-radius: 10px;
17+
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
18+
width: 100%;
19+
max-width: 400px;
20+
}
21+
22+
h1 {
23+
text-align: center;
24+
color: #333;
25+
margin-bottom: 20px;
26+
}
27+
28+
/* Улучшенные поля ввода */
29+
input {
30+
width: 100%;
31+
padding: 12px 15px;
32+
margin: 8px 0 20px;
33+
border: 1px solid #ddd;
34+
border-radius: 6px;
35+
font-size: 16px;
36+
box-sizing: border-box;
37+
transition: border 0.3s, box-shadow 0.3s;
38+
}
39+
40+
input:focus {
41+
border-color: #4a90e2;
42+
box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.2);
43+
outline: none;
44+
}
45+
46+
input::placeholder {
47+
color: #aaa;
48+
}
49+
50+
/* Улучшенная кнопка */
51+
button {
52+
width: 100%;
53+
padding: 14px;
54+
background-color: #4a90e2;
55+
color: white;
56+
border: none;
57+
border-radius: 6px;
58+
font-size: 16px;
59+
font-weight: bold;
60+
cursor: pointer;
61+
transition: background-color 0.3s, transform 0.2s;
62+
}
63+
64+
button:hover {
65+
background-color: #3a7bc8;
66+
}
67+
68+
button:active {
69+
transform: scale(0.98);
70+
}
71+
72+
/* Стили для label */
73+
label {
74+
font-weight: 600;
75+
color: #555;
76+
}

example/hwapp/view/simple.html

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<!DOCTYPE html>
2+
<html lang="ru">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<title>Улучшенные поля ввода и кнопка</title>
7+
<link rel="stylesheet" href="/images/styles.css">
8+
</head>
9+
<body>
10+
<div class="container">
11+
<h1>Форма входа</h1>
12+
<form>
13+
<label for="username">Имя пользователя:</label>
14+
<input type="text" id="username" placeholder="Введите ваш логин">
15+
16+
<label for="password">Пароль:</label>
17+
<input type="password" id="password" placeholder="Введите пароль">
18+
19+
<button type="submit">Войти</button>
20+
</form>
21+
</div>
22+
</body>
23+
</html>

example/hwapp/КонтролПриветствия.os

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,28 @@
66

77
КонецПроцедуры
88

9-
&ТочкаМаршрута("/")
9+
&ТочкаМаршрута("view")
10+
&Отображение("./hwapp/view/simple.html")
11+
Процедура Вьюха() Экспорт
12+
13+
КонецПроцедуры
14+
15+
&ТочкаМаршрута("")
1016
Процедура Приветствие(Ответ) Экспорт
1117

1218
Ответ.ТелоТекст = СтрШаблон("<!DOCTYPE html>
1319
|<div> %1 </div>", "Привет новый дивный мир !");
1420

1521
КонецПроцедуры
1622

17-
&ТочкаМаршрута("/err")
23+
&ТочкаМаршрута("err")
1824
Процедура Ошибка() Экспорт
1925

2026
ВызватьИсключение "У меня ошибка";
2127

2228
КонецПроцедуры
2329

24-
&ТочкаМаршрута("/redir")
30+
&ТочкаМаршрута("redir")
2531
Процедура Перенаправление(Ответ) Экспорт
2632

2733
Ответ.Перенаправить("/");

packagedef

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272

7373

7474
Описание.Имя("winow")
75-
.Версия("0.9.5")
75+
.Версия("0.9.6")
7676
.Автор("Никита Иванченко")
7777
.АдресАвтора("https://github.com/Nivanchenko")
7878
.Описание("Минималистичный веб-сервер на нативном OneScript")

src/Классы/ВходящийЗапрос.os

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#Использовать json
22

3+
Перем Идентификатор Экспорт;
34
Перем ТекстЗапроса Экспорт;
45
Перем Заголовки Экспорт;
56
Перем Тело Экспорт;
@@ -31,6 +32,8 @@
3132
&Пластилин("Настройки") _Настройки
3233
)
3334

35+
Идентификатор = Формат(ТекущаяУниверсальнаяДатаВМиллисекундах(), "ЧГ=0") + ":" + Новый УникальныйИдентификатор();
36+
3437
ТекстЗапроса = "";
3538
Заголовки = Новый Соответствие();
3639
Тело = "";

src/Классы/ОбработчикЗапросов.os

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,8 @@
8383
Ответ.ОбработатьМодель();
8484

8585
КонецЕсли;
86-
86+
87+
Ответ.ИдентификаторЗапроса = Запрос.Идентификатор;
8788
Возврат Ответ;
8889

8990
КонецФункции
@@ -95,6 +96,7 @@
9596
Функция АвторизованныйОтвет(Запрос, Сессия, ОбработчикИПараметры)
9697

9798
Ответ = ФабрикаОтветов.НовыйОтвет();
99+
Ответ.ИдентификаторЗапроса = Запрос.Идентификатор;
98100
Ответ.Куки.Добавить(МенеджерСессий.ИмяКукаСессии(), Сессия.Идентификатор());
99101

100102
Отображене = МенеджерОтображений.ПолучитьОтображениеДействия(ОбработчикИПараметры.Действие);

src/Классы/ОбработчикСоединений.os

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
Приостановить(Настройки.ЗадержкаПередЧтениемСокета);
4040
КонецЕсли;
4141

42-
ДанныеЗапроса = ВычитатьВПопыткеДвоичныеДанные(Соединение);
42+
ДанныеЗапроса = Соединение.ПрочитатьДвоичныеДанные();//ВычитатьВПопыткеДвоичныеДанные(Соединение);
4343

4444
Возврат ДанныеЗапроса;
4545
КонецФункции

src/Классы/Ответ.os

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
Перем Перечисления;
22
Перем Шаблон;
33

4+
Перем ИдентификаторЗапроса Экспорт;
5+
46
Перем СостояниеКод Экспорт;
57
Перем СостояниеТекст Экспорт;
68
Перем Заголовки Экспорт;

src/Классы/ПодготовительОтветов.os

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@
66

77
Функция ДвоичныеДанныеОтвета(Ответ) Экспорт
88

9+
#Если Не Windows Тогда
10+
ПосчитатьИДобавитьРазмерКонтента(Ответ);
11+
ДобавитьЗаголовокЗакрытияСоединения(Ответ);
12+
#КонецЕсли
13+
914
МассивОтвета = Новый Массив();
1015

1116
МассивОтвета.Добавить(ПолучитьШапкуОтвета(Ответ));
@@ -35,11 +40,29 @@
3540
КонецЕсли;
3641

3742
ДвоичныеДанныеОтвета = СоединитьДвоичныеДанные(МассивДвоичныхДанных);
38-
43+
3944
Возврат ДвоичныеДанныеОтвета;
4045

4146
КонецФункции
4247

48+
Процедура ПосчитатьИДобавитьРазмерКонтента(Ответ)
49+
50+
Если ЗначениеЗаполнено(Ответ.ТелоДвоичныеДанные) Тогда
51+
Размер = Ответ.ТелоДвоичныеДанные.Размер();
52+
ИначеЕсли ЗначениеЗаполнено(Ответ.ТелоТекст) Тогда
53+
Размер = ПолучитьДвоичныеДанныеИзСтроки(Ответ.ТелоТекст, "utf-8").Размер();
54+
Иначе
55+
Размер = 0;
56+
КонецЕсли;
57+
58+
Ответ.Заголовки.Вставить("content-length", Формат(Размер, "ЧГ=0"));
59+
60+
КонецПроцедуры
61+
62+
Процедура ДобавитьЗаголовокЗакрытияСоединения(Ответ)
63+
Ответ.Заголовки.Вставить("connection", "close");
64+
КонецПроцедуры
65+
4366
Процедура ДобавитьВМассивСоответствиеКакСтроки(Массив, Соответствие)
4467
Для Каждого КиЗ Из Соответствие Цикл
4568
Массив.Добавить(СтрШаблон("%1: %2", КиЗ.Ключ, КиЗ.Значение));

0 commit comments

Comments
 (0)