Size: a a a

Django [ru] #STAY HOME

2020 May 13

N

Nonverbis in Django [ru] #STAY HOME
Muslim Beibytuly
Чем вы раздаёте статику?
nginx
источник

MB

Muslim Beibytuly in Django [ru] #STAY HOME
Тогда почитайте о cache control policy в nginx и опишите как вам нужно внутри вашей локации для статики
источник

N

Nonverbis in Django [ru] #STAY HOME
Muslim Beibytuly
Тогда почитайте о cache control policy в nginx и опишите как вам нужно внутри вашей локации для статики
ок. пошел читать.
источник

♚Inojelis in Django [ru] #STAY HOME
Помогите плиз. При попытке зайти на logout/(то есть выйти из аккаунта) ругается на такую ошибку:

RecursionError: maximum recursion depth exceeded

Код вьюхи: https://hastebin.com/wogakovopi.py
Код Урла: https://hastebin.com/emafuwacuz.bash
источник

А

Антон in Django [ru] #STAY HOME
♚Inojelis
Помогите плиз. При попытке зайти на logout/(то есть выйти из аккаунта) ругается на такую ошибку:

RecursionError: maximum recursion depth exceeded

Код вьюхи: https://hastebin.com/wogakovopi.py
Код Урла: https://hastebin.com/emafuwacuz.bash
ты хоть смотрел, что у тебя там написано?
источник

♚Inojelis in Django [ru] #STAY HOME
Антон
ты хоть смотрел, что у тебя там написано?
да
источник

А

Антон in Django [ru] #STAY HOME
def func():
   func()
   return smth
источник

♚Inojelis in Django [ru] #STAY HOME
Антон
def func():
   func()
   return smth
Я решил проблему. Я забыл импортировать логоут из джанги
источник

А

Антон in Django [ru] #STAY HOME
называть функции одинаковыми именами - плохая идея
источник

N

Nonverbis in Django [ru] #STAY HOME
Muslim Beibytuly
Тогда почитайте о cache control policy в nginx и опишите как вам нужно внутри вашей локации для статики
Выставил

 location / {
   try_files $uri $uri/ =404;
   expires max;
 }


Теперь Хром не шлет запросы на сервер для картинок, js и сss, но для html шлет.

А Firefox шлет шлет запросы на сервер для и картинок, js и сss, и для html.

Тут тогда вопросов много: как правильно должен вести себя браузер-то? Ну, ему сказано - реурс не устареет 10 лет. Зачем за ним лазить даже в случае html?
источник

MB

Muslim Beibytuly in Django [ru] #STAY HOME
Nonverbis
Выставил

 location / {
   try_files $uri $uri/ =404;
   expires max;
 }


Теперь Хром не шлет запросы на сервер для картинок, js и сss, но для html шлет.

А Firefox шлет шлет запросы на сервер для и картинок, js и сss, и для html.

Тут тогда вопросов много: как правильно должен вести себя браузер-то? Ну, ему сказано - реурс не устареет 10 лет. Зачем за ним лазить даже в случае html?
Спецификации браузер разные
источник

_

_ in Django [ru] #STAY HOME
Как лучше передать данные (к примеру список категорий для меню) в base.html?
источник

N

Nonverbis in Django [ru] #STAY HOME
Muslim Beibytuly
Спецификации браузер разные
Я не могу понять, как браузеру сказать, чтобы он при повторных запроса не лазил на сервак за статикой. Вообще никогда. Ладно, путь он лазит за html. Бог с ним. Я смирился. Но за статикой-то я не хочу его повторные запросы видеть вообще.

Прописал в nginx:

add_header Cache-Control "public, max-age=31536000, immutable";

Эффект такой же: Firefix шлет все запросы (css, js, img, html). А Chrome шлет запрос на

Я вообще ничего не понимаю. Как браузерам сказать, чтобы они забыли лазить на сервак повторно?
источник

MB

Muslim Beibytuly in Django [ru] #STAY HOME
Nonverbis
Я не могу понять, как браузеру сказать, чтобы он при повторных запроса не лазил на сервак за статикой. Вообще никогда. Ладно, путь он лазит за html. Бог с ним. Я смирился. Но за статикой-то я не хочу его повторные запросы видеть вообще.

Прописал в nginx:

add_header Cache-Control "public, max-age=31536000, immutable";

Эффект такой же: Firefix шлет все запросы (css, js, img, html). А Chrome шлет запрос на

Я вообще ничего не понимаю. Как браузерам сказать, чтобы они забыли лазить на сервак повторно?
html рендерит Django?
источник

N

Nonverbis in Django [ru] #STAY HOME
Muslim Beibytuly
html рендерит Django?
Нет. Это все пока просто на диске лежит:

(venv) michael@michael:~/PycharmProjects/nginx$ tree
.
├── index.html
└── static
   ├── css.css
   ├── img.jpg
   └── js.js


Это у меня модель. А на боевом проекте на бэке Джанго будет. Но сейчас пока просто, чтобы не городить гуникорн или что-то подобное.
источник

MB

Muslim Beibytuly in Django [ru] #STAY HOME
Nonverbis
Нет. Это все пока просто на диске лежит:

(venv) michael@michael:~/PycharmProjects/nginx$ tree
.
├── index.html
└── static
   ├── css.css
   ├── img.jpg
   └── js.js


Это у меня модель. А на боевом проекте на бэке Джанго будет. Но сейчас пока просто, чтобы не городить гуникорн или что-то подобное.
У вас данные вставляются в ваш html, нет?
источник

N

Nonverbis in Django [ru] #STAY HOME
Muslim Beibytuly
У вас данные вставляются в ваш html, нет?
Вот такой у меня html:

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <img src="static/img.jpg"/>
   <script type="text/javascript" src="static/js.js"></script>
   <link rel="stylesheet" href="static/css.css">
   <title>Title</title>
</head>
<body>
   <p>text</p>
</body>
</html>
источник

MB

Muslim Beibytuly in Django [ru] #STAY HOME
Nonverbis
Вот такой у меня html:

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <img src="static/img.jpg"/>
   <script type="text/javascript" src="static/js.js"></script>
   <link rel="stylesheet" href="static/css.css">
   <title>Title</title>
</head>
<body>
   <p>text</p>
</body>
</html>
Тогда только лезть в логи nginx и изучать какие запросы и какие ответы генерируются
источник

N

Nonverbis in Django [ru] #STAY HOME
Muslim Beibytuly
Тогда только лезть в логи nginx и изучать какие запросы и какие ответы генерируются
Логи там такие:

x86_64; rv:76.0) Gecko/20100101 Firefox/76.0"
127.0.0.1 - - [13/May/2020:21:34:33 +0300] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0"
127.0.0.1 - - [13/May/2020:21:34:33 +0300] "GET /static/js.js HTTP/1.1" 304 0 "http://localhost/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0"
127.0.0.1 - - [13/May/2020:21:34:33 +0300] "GET /static/css.css HTTP/1.1" 304 0 "http://localhost/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0"
127.0.0.1 - - [13/May/2020:21:34:33 +0300] "GET /static/img.jpg HTTP/1.1" 304 0 "http://localhost/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0"
::1 - - [13/May/2020:21:34:44 +0300] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"
::1 - - [13/May/2020:21:34:54 +0300] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"


Т.е. и Мозила шлет 4 запроса, а Хром шлет один - на html.
источник

MB

Muslim Beibytuly in Django [ru] #STAY HOME
Nonverbis
Логи там такие:

x86_64; rv:76.0) Gecko/20100101 Firefox/76.0"
127.0.0.1 - - [13/May/2020:21:34:33 +0300] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0"
127.0.0.1 - - [13/May/2020:21:34:33 +0300] "GET /static/js.js HTTP/1.1" 304 0 "http://localhost/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0"
127.0.0.1 - - [13/May/2020:21:34:33 +0300] "GET /static/css.css HTTP/1.1" 304 0 "http://localhost/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0"
127.0.0.1 - - [13/May/2020:21:34:33 +0300] "GET /static/img.jpg HTTP/1.1" 304 0 "http://localhost/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0"
::1 - - [13/May/2020:21:34:44 +0300] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"
::1 - - [13/May/2020:21:34:54 +0300] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"


Т.е. и Мозила шлет 4 запроса, а Хром шлет один - на html.
Заголовки в ответе смотрели?
источник