רעסאָלווינג “דאָס איז ומגעלומפּערט / 404 ניט געפֿונען טעות” נאָך ינסטאָלינג די “זענד-יקספּרעסיוו”

ארבעטן מיט מידדוואַרע, אין דעם פּאָסטן מיר וועלן סאָלווע די פּראָבלעם פון “דאָס איז ומגעלומפּערט / 404 ניט געפֿונען טעות” נאָך ינסטאָלינג די “זענד-יקספּרעסיוו”.

פּראָבלעם

Recentemente, interessado em ver como os Middleware funcionam, fiz a instalação dozend-expressive-skeletonconforme o Guia Quick Start: Using the Skeleton + Installer:

$ composer create-project zendframework/zend-יקספּרעסיוו-skeleton expressive

Após isto, para checar o resultado, acessei o navegador no endereço הטטפּ://localhost/expressive/public/ e peguei o seguinte erro:

Oops!
דאָס איז ומגעלומפּערט.
 
We encountered a 404 ניט געפֿונען טעות.
 
You are looking פֿאַר something that doesn't exist or may have moved. Check out one of the links on this page or head back to Home.

באַשייד

A mensagem de erro indicava que a página não tinha sido encontrada, portanto, parecia um problema de PATH (caminho) 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 (עקס: www/ ou htdocs/), mas em um subdiretório, desse jeito: הטטפּ://localhost/יקספּרעסיוו/public/.

Enfim, 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 (command):

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 הטטפּ://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. ייַנמאָנטירונג איז פּשוט:

$ קאָמפּאָזיטאָר require los/basepath

Após isto, basta adicionar o Middleware como um dos primeiros na sua aplicação. לעמאָשל, eu coloquei a chamada no arquivopublic\index.php”, logo após “$app ter sido inicializada:

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

That’s it!

Referência

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

גאַנץ אַקסעססעס: 5124

Um comentário sobreרעסאָלווינג “דאָס איז ומגעלומפּערט / 404 ניט געפֿונען טעות” נאָך ינסטאָלינג די “זענד-יקספּרעסיוו”

לאָזן אַ ענטפֿערן

אייער בליצפּאָסט אַדרעס וועט ניט זיין ארויס. Required fields זענען אנגעצייכנט מיט *