#scully #scullyio #angular-scully
Вопрос:
Мое приложение angular содержит маршруты, закодированные в процентах. Пример /Страница 1
Когда я запускаю свое угловое приложение, ng serve
все работает нормально.
Но когда я запускаю статический сервер Скалли и посещаю «http://localhost:1668/Page 1», браузер показывает
Не удается ПОЛУЧИТЬ /Страница 1
Я заглянул в свой ./dist/static/assets/scully-routes.json
и вижу ,{"route":"/Page 1"}
.
Такое поведение не происходит на маршрутах без пробела.
Например http://localhost:1668/Page2
, работает просто отлично.
Ответ №1:
Статический сервер Скалли обслуживает файлы, соответствующие неэкранированному URI. В вашем случае, когда вы войдете http://localhost:1668/Page 1
, сервер попытается найти папку с именем /Page 1
, которой не существует.
Решение 1: Внешняя сторона
После того, как Скалли создаст dist/static
папку, переименуйте все экранированные имена в их неэкранированное имя. Например /foo bar/
/foo bar/
, для .
Решение 2: На Стороне Сервера
Используя nginx, я добавил эту строку в свой nginx.conf
:
try_files $uri $uri/ $request_uri/index.html /index.html;
$uri экранируется, а $request_uri не отображается.
Он попробует /foo bar
, тогда /foo bar/
и тогда /foo bar/index.html
, который найдет совпадение.
Совет
Если вы можете, просто используйте ASCII в своих URL-адресах.