
ainu
27.03.2017
12:10:49
В общем подниму пощупаю.

Igor
27.03.2017
12:10:51
не понял :(

Kirill
27.03.2017
12:11:04

Alexey
27.03.2017
12:11:07

Google

ainu
27.03.2017
12:11:11
:\
он Last-Modified заголовок строит по дате изменения файла?

Igor
27.03.2017
12:11:15
т.е. на серваке на го у тебя кешируются, а на нгинксе нет?
в общем да, надо заголовки смотреть и в том, и в том случае
и поступать соответствующе

Kirill
27.03.2017
12:12:04

Alexey
27.03.2017
12:12:23

Igor
27.03.2017
12:12:27

ainu
27.03.2017
12:12:31
в nginx можно передать
expires 10d;
add_header Pragma public;
add_header Cache-Control "public, max-age=86400";
и встанет как надо для прода

Alexey
27.03.2017
12:13:34

Kirill
27.03.2017
12:16:31

Igor
27.03.2017
12:16:36
ну да, как вариант. я просто суть рассказал. про джанго в голанг-чате писать уже точно перебор %)))

Google

Igor
27.03.2017
12:17:32
ЕМНИП, да
а gramework твой, что ли?
добавь в https://github.com/avelino/awesome-go#web-framework? :)

Kirill
27.03.2017
12:18:30

Igor
27.03.2017
12:18:54
ой, пардон :)

ainu
27.03.2017
12:19:58
Проверил, даты норм отдает
Ваще отлично.
А нет, не отдает
app.GET("/*any", app.ServeDir("./files"))

Kirill
27.03.2017
12:21:14

ainu
27.03.2017
12:21:18
files/index.html
<!doctype html>
<script src="main.js"></script>
files/main.js
console.log(5)
Что я делаю:
1. открываю консоль. Галка disable cache в хроме убрана.
нажимаю F5. вижу 5
2. открываю main.js
ввожу 10
3. Перехожу в браузер, жму F5. Ожидаю 10, вижу 5

Kirill
27.03.2017
12:23:06

ainu
27.03.2017
12:23:24
Вижу. Поменял файл только что

Kirill
27.03.2017
12:23:38

ainu
27.03.2017
12:24:03
то есть поменял файл в 15:23
в заголовках вот это:
Я кстати недели две назад именно по этой причине гнал на fasthttp

Kirill
27.03.2017
12:25:03
ну вот посмотришь через несколько минут соседний хендлер

ainu
27.03.2017
12:26:06
Окей, следующий этап. Пытаюсь задать заголовок
app.GET("/*any", func(ctx *gramework.Context) {
ctx.Response.Header.Set("Last-Modified", "Mon, 27 Mar 2020 12:23:08 GMT")
app.ServeDir("./files")(ctx)
})

Google

ainu
27.03.2017
12:28:54
но он проигнорил
А, так он вообще все игнорит. Видимо API неверно юзаю.
app.GET("/*any", func(ctx *gramework.Context) {
ctx.Response.Header.Set("Last-Modified", "Mon, 27 Mar 2020 12:23:08 GMT")
ctx.Response.Header.Set("Expires", "Mon, 27 Mar 1981 12:23:08 GMT")
ctx.Response.Header.Set("Pragma", "no-cache")
ctx.Response.Header.Set("X-My", "la-la-la")
app.ServeDir("./files")(ctx)
})
Всё, понял
Заголовки надо менять после servedir
Вот в чём затык был

Kirill
27.03.2017
12:33:19

ainu
27.03.2017
12:35:24
в самом деле прошу прощения. При этом надо один раз нажать Ctrl+f5 чтобы поменять поведение - перестанет игнорить.

Kirill
27.03.2017
12:35:55
только go get -u github.com/gramework/gramework сделай :)

ainu
27.03.2017
12:36:11
Понятное дело сделал
то есть не так

ainu
27.03.2017
12:36:26
я его сегодня в первый раз запустил
старый может быть только fasthttp

Kirill
27.03.2017
12:36:40
нет
греймворк уже тоже у тебя не самый новый) я только что запушил этот хендлер)

ainu
27.03.2017
12:37:07
аа=)
Работает =)
как часы
В общем спасибо за помощь. Заявляю, что fasthttp - не шляпа=)

Google

ainu
27.03.2017
12:40:39
То, что ServeDirNoCache отдает иногда 304 вместо 200 - нормально? Отдает честно, проблем не вызывает.
Цветная точка при запуске сервера это конечно круто
но под Windows выглядит так:
Совершенно не мешает =)

Kirill
27.03.2017
12:44:37

ainu
27.03.2017
12:46:41
Работать не мешает, но первоначальных целей разработки хендлера я не знаю. Может он должен всегда отдавать точный ответ 200 из виртуального файла у которого дата не меняется.

Admin
ERROR: S client not available

Kirill
27.03.2017
12:47:53
*NoCache я вообще только для тебя сейчас запилил

ainu
27.03.2017
12:47:59
=)

Kirill
27.03.2017
12:48:45
а ServeDir — просто для того, чтобы достаточно эффективно отдать контент директории gzip'ованный

ainu
27.03.2017
12:50:24
А как включается gzip?
На Content-Type:application/x-javascript он не сделал

Kirill
27.03.2017
12:50:41

ainu
27.03.2017
12:51:10
Кроме README.mdдока есть?
В первую очередь интересует POST

Kirill
27.03.2017
12:51:28

Monday Begins on Saturday
27.03.2017
12:51:43
Есть какие-то библиотеки для работы с телеграмом на go?
Вот эта какая-то сырая
https://github.com/sdidyk/mtproto

Google

ainu
27.03.2017
12:51:45

Kirill
27.03.2017
12:52:04

ainu
27.03.2017
12:54:46

Kirill
27.03.2017
12:55:25

ainu
27.03.2017
12:55:26

Kirill
27.03.2017
12:57:49

ainu
27.03.2017
12:58:29
Ну как nginx. Тот тоже в дефолтовом конфиге не имеет прописанного x-javascript

Kirill
27.03.2017
12:59:41

ainu
27.03.2017
12:59:48
Идея преобразования объектов и переменных в JSON отличная конечно

Kirill
27.03.2017
13:00:09

ainu
27.03.2017
13:00:28
Content-Type:application/x-javascript я не прописывал. Он сам отдал
HTTP/1.1 200 OK
Server: fasthttp
Date: Mon, 27 Mar 2017 13:00:04 GMT
Content-Type: application/x-javascript
Content-Length: 17
Pragma: no-cache
Expires: 0
Cache-Control: no-cache, no-store, must-revalidate
Last-Modified: Mon, 27 Mar 2017 12:38:18 GMT
Возможно потому что у меня WIndows

Kirill
27.03.2017
13:00:52
и не загзиповал? жуть какая. посмотрю.

ainu
27.03.2017
13:01:34
хотя fasthttpшный fs servefile опрашивает mime пекедж по расширению.
а тот отдает x-javascript

Kirill
27.03.2017
13:01:39
миддлвары трёх уровней — две для разработчика и один для devops'а, если он решит воткнуть какую-нибудь метрику

ainu
27.03.2017
13:04:30
https://github.com/valyala/fasthttp/blob/master/fs.go#L1142 вот тут, если я правильно на это место вышел