Если открыть веб проект и походить по страницам - всё

ок.
Если перезагрузить главную страницу проекта - всё ок.
Если перезагрузить на любой другой странице, не главной, nginx возвращает 404 Not Found.

Я понимаю, что перезагрузка основной страницы работает, потому-что nginx отдаёт контент по запросу главной страницы, который прописан в кофиге.
- main.com

А как прописать, что-бы отдавались другие страницы?
- main.com/page1
- main.com/page1/subpage1

19 ответов

21 просмотр

На чём написан проект?

Vitaliy-S Автор вопроса
Johann
На чём написан проект?

Всё написано на Dart и собрано в JS при компиляции. По сути, это один сплошной main.js

Vitaliy S
Всё написано на Dart и собрано в JS при компиляции...

Покажи текущий конфиг Если он большой, то на pastebin

Vitaliy-S Автор вопроса
Johann
Покажи текущий конфиг Если он большой, то на paste...

server { index index.html; root /home/dptuser/dpt/dev/web; server_name d-web.dpt.pp.ua; location ~* \.(html)$ { try_files $uri $uri/ /index.html; expires -1; } listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/d-web.dpt.pp.ua/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/d-web.dpt.pp.ua/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { if ($host = d-web.dpt.pp.ua) { return 301 https://$host$request_uri; } # managed by Certbot server_name d-web.dpt.pp.ua; listen 80; return 404; # managed by Certbot }

Vitaliy S
server { index index.html; root /home/dpt...

Каков тайный смысл вот этого location'а? location ~* \.(html)$ { ... }

Vitaliy-S Автор вопроса
Vitaliy S
Отдавать не кешируя.

И каким образом он должен отдавать это не кешируя?

Vitaliy-S Автор вопроса
Johann
И каким образом он должен отдавать это не кешируя?

Сорян, я не понимаю что и как работает. Отдавался кеш, вместо актуальной сборки. Гугл по запросу выдал такой код. Я его вставил, кеш пропал.

Понятно Я обычно ставлю add_header Cache-Control "no-cache, no-store, must-revalidate" вместо этого expires Я так понимаю, что index.html только один, в корне, других нет?

Vitaliy-S Автор вопроса

Да. Только один и других нет.

Vitaliy S
Да. Только один и других нет.

location / { add_header Cache-Control "no-cache, no-store, must-revalidate"; try_files $uri /index.html; }

Vitaliy-S Автор вопроса
Johann
location / { add_header Cache-Control "no-cach...

О! Я попробую этот вариант. Спс.

Vitaliy-S Автор вопроса

На всякий случай. Если надо разместить такое под каким-то URI-префиксом на уже существующем сайте, то location для этого заводится такой (кеширование опускаю): location /prefix/ { try_files $uri /prefix/index.html; } И роутер в аппликейшене в таком случае надо поправлять, чтобы он маршруты обрабатывал с учётом префикса (в идеале задавать в где-то конфиге).

Vitaliy-S Автор вопроса
Johann
На всякий случай. Если надо разместить такое под к...

Да, может пригодится. Я сейчас роуты в самом приложении прикручу и по идее маршрутизация правильно отработает. Спс.

Johann
Понятно Я обычно ставлю add_header Cache-Control "...

как раз у него сделано верно, а вот заголовок костыль

Vitaliy-S Автор вопроса
Владимир Муковоз
как раз у него сделано верно, а вот заголовок кост...

В моём варианте - вместо подстраницы - отдавалось 404. А в варианте от @IvanShatsky всё отрабатывает корректно и не кешируется. )

Ну и ссылка на main.js в таком случае должна быть относительной (ну и на все остальные ассеты тоже, естественно). То есть или <script src="main.js">, или <script src="./main.js">, но не <script src="/main.js">

Похожие вопросы

Обсуждают сегодня

Hi! Could you please upvote my new notebook? thanks a lot. https://www.kaggle.com/code/melissamonfared/anime-character-generation-dsgan-gan
məru
4
upvote plz https://www.kaggle.com/code/bassetkerouche/swapping-face?scriptVersionId=207300096
benkerrouche Statoinary
1
-- Привет всем. -- Есть csv, проблема в том что он содержит очень много повторов по столбцам и по строкам. -- Решил перекинуть это в базу данных, чтобы было проще. Но я не ша...
Oleg Ivanov
1
Как считаете - вопрос на собесе: «Как быстрее всего запустить ec2 машину в aws (в чистом аккаунте) и показать вывод от любой команды с нее» не очень ли сложный для условного м...
Sergey
50
Господа, у меня вопрос. Что вообще такое этот ваш data science и data scientists? А то гуглю, а мне какую-то расплывчатую фигню говорят.
Inkosta
44
Hi could you please help me with my two new projects? https://www.kaggle.com/code/hesankazemnia/rice-image-classification-cnn-pytorch https://www.kaggle.com/code/hesankazemnia...
Hesan
6
Исходя из ваших комментариев, получается, что чтобы получить марты в CH из данных в PG, неправильно тянуть сырые данные в CH и там их обрабатывать, лепить справочники и джойни...
unhingedlunatic
42
hi, Can you upvote? https://www.kaggle.com/code/durjoychandrapaul/rag-q-a-system-by-langchain-huggingface-for-pdf?scriptVersionId=204704280
A
1
Could you upvote and comment please? https://www.kaggle.com/code/tatianapetrushkevich/beginner-images https://www.kaggle.com/code/tatianapetrushkevich/python-for-beginners1 ...
Tazziyana
7
Коллеги, приветствую! Появилась не совсем тривиальная задача реализовать в nginx редирект HTTPS —> HTTP. Да, именно так, а не наоборот. Мы разрабатываем embedded устройство,...
Никита
24
Карта сайта