Pergunta

Usando Restlet eu precisava para servir algum conteúdo estático simples no mesmo contexto que o meu serviço web. Eu configurei o componente com um Directory, mas em testes, eu encontrei ela só vai servir 'index.html', tudo mais resultados em um 404.

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

Então ... http: // serviço e http: //service/index.html tanto trabalho,

http: //service/other.html me dá um 404

Alguém pode lançar alguma luz sobre isso? Eu quero qualquer arquivo dentro do diretório ./content a estar disponíveis.

PS:. Eu finalmente planeja usar um proxy reverso e servir todo o conteúdo estático fora de um outro servidor web, mas por agora eu preciso disso para trabalhar como é

Foi útil?

Solução

Bem, eu descobri o problema. Na verdade Restlet parece encaminhar pedidos com base no prefixo, mas não manipula mais longo prefixo correspondente corretamente, ele também parece ignorar extensões de arquivo.

Assim, por exemplo, se eu tivesse um recurso ligado a "/ outro" ... e um diretório em "/". E eu solicitar /other.html, o que realmente acontece é que eu obter o "outro /" recurso. (A extensão é ignorado?), E não o arquivo estático do diretório como seria de esperar.

Se aynone sabe por que isso é, ou como mudar isso, eu adoraria saber. Não é uma grande coisa, apenas para testes. Acho que vamos estar colocando Apache ou nginx na frente deste na produção de qualquer maneira.

Outras dicas

Routers em Restlet por uso padrão do "Template.MODE_STARTS_WITH" modo correspondente. Você sempre pode definir o padrão Router fazendo router.setMatchingMode (Template.MODE_EQUALS). Isso irá ativar a correspondência rigorosa por padrão para anexar. Você pode optar por substituir rotas individuais com setMatchingMode.

boa documentação sobre Restlet Routing

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top