Рестлет - подача статического контента - PullRequest
3 голосов
/ 30 сентября 2008

Используя 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: Я в конечном итоге планирую использовать обратный прокси-сервер и передавать весь статический контент с другого веб-сервера, но сейчас мне нужно, чтобы он работал как есть.

Ответы [ 2 ]

2 голосов
/ 13 октября 2009

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

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

2 голосов
/ 30 сентября 2008

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

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

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

...