De problemas “Esto es torpe / 404 Error no se encuentra” Después de la instalación de la “Zend-expresivo”

Trabajando con el Middleware, en este Post nos va a resolver el problema de la “Esto es torpe / 404 Error no se encuentra” Después de la instalación de la “Zend-expresivo”.

Problema

Recentemente, interessado em ver como os Middleware funcionam, Hice la instalación de la “zend-expressive-skeletonconforme o Guia Quick Start: Using the Skeleton + Installer:

$ composer create-project zendframework/Zend-expresiva-skeleton expressive

Después de esto, para checar o resultado, acessei o navegador no endereço http://localhost/expressive/public/ e peguei o seguinte erro:

Oops!
Esto es torpe.
 
We encountered a 404 Error no se encuentra.
 
You are looking es something that doesn't exist or may have moved. Check out one of the links on this page or head back to Home.

Solución

A mensagem de erro indicava que a página não tinha sido encontrada, por lo que, parecia um problema de PATH (forma) para os arquivos da aplicação.

Dando uma olhada por aí, cheguei a conclusão que isto aconteceu por eu não ter criado o projeto diretamente na raiz do diretório de publicação (Ex: www/ ou htdocs/), mas em um subdiretório, desse jeito: http://localhost/expresiva/public/.

De todos modos, parece que o Expressive tem alguma dificuldade com Base Url / Base Path. Na verdade a própria arquitetura do Zend Framework convenciona que o diretório de publicação deve ser opublic/“, tanto que se você rodar o servidor Web apontando parapublic/“, a aplicação funciona normalmente.

Rodando o comandophp -S 0.0.0.0:8080 -t public/pelo terminal (comando):

Taylor@taylor-pc MINGW64 /c/wamp64/www/expressive
$ php -S 0.0.0.0:8080 -t public/
PHP 7.0.10 Development Server started at Thu Aug 10 15:55:00 2017
Listening on http://0.0.0.0:8080
Document root is C:\wamp64\www\expressive\public
Press Ctrl-C to quit.
[Thu Aug 10 15:55:34 2017] 127.0.0.1:65106 [404]: /expressive/public/

Agora sim, fazendo isto é possível acessar http://localhost/expressive/public/ sem qualquer erro.

Mas para não ficar nessa de sempre apontar parapublic/“, existe o Middleware Los/basepath como solução de contorno. La instalación es simple:

$ compositor require los/basepath

Después de esto, basta adicionar o Middleware como um dos primeiros na sua aplicação. Por ejemplo, eu coloquei a chamada no arquivopublic\index.php”, logo após “$app ter sido inicializada:

1
$app->pipe(nuevo \LosMiddleware\BasePath\BasePath('/expressive/public'));

Eso es todo!

Referência

Access /path/to/public got 404 page
Base Path Middleware for PHP

Total hits: 193

Un Comentario en “De problemas “Esto es torpe / 404 Error no se encuentra” Después de la instalación de la “Zend-expresivo”

Contesta

Su dirección de correo electrónico no será publicado. Campos requeridos están marcados con *