Как вернуть приложение svelte для всех URL? - PullRequest
0 голосов
/ 30 апреля 2020

Приложение работает, когда я запрашиваю '/', но когда я запрашиваю '/foo', я получаю ошибку 404.

Как я могу вернуть приложение для всех маршрутов?

Ответы [ 3 ]

0 голосов
/ 30 апреля 2020

Это зависит от того, где вы его развернули. Функциональность, которая выполняет функцию '/' как определенный компонент, существует в программном обеспечении веб-сервера. '--Start', очевидно, работает с сервером dev.

Если вы используете sapper, он должен работать, если вы выполните 'npm start'. Если вы просто обслуживаете одностраничный индекс. html другим способом, выполните поиск deploy spa или routing index.html вместе с любым серверным программным обеспечением, на котором оно развертывается (т. Е. deploy spa apache).

Это также зависит от того, какую маршрутизацию вы используете, если хотите перехватить этот путь и что-то с ним сделать. Я не уверен, как это сделать [с сапером], может быть, определить слаг по умолчанию? У других библиотек маршрутизации будет свой путь. Обычно вы определяете маршрут '*', который является универсальным, и выбираете, какой компонент вы хотите отобразить, когда URL не существует.

0 голосов
/ 30 апреля 2020

Svelte не является веб-сервером. Проект Svelte компилируется в страницу HTML и связанные пакеты JS и CSS, вот и все.

Если вы хотите обработать все маршруты и перенаправить на root вашего приложения (* 1003) *) тогда вам нужно либо настроить любой веб-сервер, на котором вы работаете (Apache, nginx, ...), чтобы сделать это для вас, либо настроить бэкэнд (Node + Express, для пример), который будет обрабатывать универсальный маршрут «подстановочный знак» и либо перенаправлять на маршрут root, либо сразу обслуживать вашу страницу Svelte (например, если вы планируете использовать клиентскую сторону маршрутизатора).

Некоторые услуги хостинга, такие как Surge, Now (упс, Tercel), Heroku и др. c. может также позволить вам настроить ваш проект на автоматическое перенаправление на путь root или подачу контента из универсального маршрута.

0 голосов
/ 30 апреля 2020

Мне удалось сделать это в процессе разработки, добавив флаг --single к команде start, но я до сих пор не знаю, как его развернуть.

...