Restlet - предоставление статического содержимого

StackOverflow https://stackoverflow.com/questions/150522

  •  02-07-2019
  •  | 
  •  

Вопрос

Используя Restlet, мне нужно было обслуживать некоторый простой статический контент в том же контексте, что и мой веб-сервис.Я настроил компонент с помощью Directory, но при тестировании я обнаружил, что он будет обслуживать только 'index.html', все остальное приводит к 404.

router.attach("/", new Directory(context, new Reference(baseRef, "./content"));

Итак... http://service и http://service/index.html и то, и другое работает,

но http://service/other.html дает мне 404 балла

Кто-нибудь может пролить некоторый свет на это?Я хочу, чтобы любой файл в каталоге ./content был доступен.

PS:В конечном итоге я планирую использовать обратный прокси-сервер и обслуживать весь статический контент с другого веб-сервера, но пока мне нужно, чтобы это работало как есть.

Это было полезно?

Решение

Что ж, я разобрался в этом вопросе.На самом деле Restlet, похоже, маршрутизирует запросы на основе префикса, но неправильно обрабатывает самый длинный соответствующий префикс, а также, похоже, игнорирует расширения файлов.

Так, например, если бы у меня был ресурс, привязанный к "/other"...и каталог в "/".И я запрашиваю /other.html, что на самом деле происходит, так это то, что я получаю ресурс "/ other".(Расширение игнорируется?), а не статический файл из каталога, как я ожидал бы.

Если айнон знает, почему это так или как это изменить, я хотел бы знать.В этом нет ничего особенного, просто для тестирования.Я думаю, что мы в любом случае поставим apache или nginx перед этим в производстве.

Другие советы

Маршрутизаторы в Restlet по умолчанию используют режим сопоставления "Template.MODE_STARTS_WITH".Вы всегда можете установить маршрутизатор по умолчанию, выполнив команду router.setMatchingMode(Template.MODE_EQUALS).Это включит строгое соответствие по умолчанию для attach.Вы можете переопределить отдельные маршруты с помощью setMatchingMode.

Хорошая документация по маршрутизации Restlet

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top