@proGO

Страница 569 из 1674
ainu
27.03.2017
12:10:49
В общем подниму пощупаю.

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

Kirill
27.03.2017
12:11:04
А почему Nginx-у не надо этого?
он в заголовки хотя бы нормально умеет

Alexey
27.03.2017
12:11:07
А почему Nginx-у не надо этого?
нжинкс не кеширует файлы, когда отдаёт их с диска. У них идея в том, что их должна ОС кешировать

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

Igor
27.03.2017
12:11:15
т.е. на серваке на го у тебя кешируются, а на нгинксе нет?

в общем да, надо заголовки смотреть и в том, и в том случае

и поступать соответствующе

Alexey
27.03.2017
12:12:23
Igor
27.03.2017
12:12:27
в Centos 5 его нет по умолчанию)
> centos 5 я ж говорю, ретроград :)

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
> centos 5 я ж говорю, ретроград :)
Ну, иногда работаешь в таких конторах. Я оттуда ушёл, правда, и был очень рад:)

обычно в шаблонах указывают версию файла в query string'е, как вариант
У джанги есть батарейки, которые при генерации статики создают их просто с именами всякими хешированными. И потом в шаблоны автоматически подставляют.

Kirill
27.03.2017
12:16:31
gramework
ЕМНИП, да

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
а gramework твой, что ли? добавь в https://github.com/avelino/awesome-go#web-framework? :)
мой https://github.com/avelino/awesome-go/pull/1334 я еще по тестам не закончил

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
app.GET("/*any", app.ServeDir("./files"))
так чётко отдаёт дату

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

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

Вот в чём затык был

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
но под Windows выглядит так:
принято, зафикшу. спасибо.

То, что ServeDirNoCache отдает иногда 304 вместо 200 - нормально? Отдает честно, проблем не вызывает.
ну — это маловероятный вариант, но он есть. это когда ну прям совсем всё совпало. я потом пофикшу и кеша там не будет вовсе.

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
А как включается gzip?
в не-кастомах оно из коробки

ainu
27.03.2017
12:51:10
Кроме README.mdдока есть?

В первую очередь интересует POST

Kirill
27.03.2017
12:51:28
На Content-Type:application/x-javascript он не сделал
в стандарте же application/javascript O.o и потом не понял — не сделал? тест кейс? логи?

Кроме README.mdдока есть?
godoc.org/github.com/gramework/gramework

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
В первую очередь интересует POST
app.POST(), подпись такая же

В первую очередь интересует POST
пример HTTPS-only POST: app.HTTP().POST("/abc", app.ToTLSHandler()).HTTPS().POST("/abc", "https-only hello POST %)")

Kirill
27.03.2017
12:55:25
https://play.golang.org/p/7O41RLu0QX
убедил а что он не сделал-то?

ainu
27.03.2017
12:55:26
убедил а что он не сделал-то?
Нет, всё нормально. Просто ты сказал, что ServeDir умеет gzipовать, а у меня не gzipнул, вот и спросил почему.

Kirill
27.03.2017
12:57:49
Нет, всё нормально. Просто ты сказал, что ServeDir умеет gzipовать, а у меня не gzipнул, вот и спросил почему.
потому что гзипует он то, что умеет, а application/x-javascript не умеет) кстати, гзипует, по-моему, после первого запроса)

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

Kirill
27.03.2017
12:59:41
Ну как nginx. Тот тоже в дефолтовом конфиге не имеет прописанного x-javascript
ну а .js он знает как https://github.com/gramework/utils/blob/master/gramtentTypes/contentTypeByExtension.go#L187

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

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
десериализация тоже есть
@ramainen https://github.com/gramework/gramework/blob/master/gramework_test.go#L17

хотя fasthttpшный fs servefile опрашивает mime пекедж по расширению. а тот отдает x-javascript
я вот, похоже, хотел вкрутить тот пакет, и, видимо, не сделал

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

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

Страница 569 из 1674