чечүү “Бул ыңгайсыз / 404 Ката табылган жок” орнотулгандан кийин “зенд-экспрессивдүү”

Middleware менен иштөө, Бул постто биз көйгөйдү чечебиз “Бул ыңгайсыз / 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

Андан кийин, para checar o resultado, acessei o navegador no endereço HTTP://localhost/expressive/public/ e peguei o seguinte erro:

Oops!
Бул ыңгайсыз.
 
We encountered a 404 Ката табылган жок.
 
You are looking for 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, ошондуктан, 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: HTTP://localhost/экспрессивдүү/public/.

акыры, 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 (буйрук):

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/

азыр ооба, 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. A instalação é simples:

$ композитор require los/basepath

Андан кийин, 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'));

Дал ушул!

Referência

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

жалпы кайрылат: 10522

Карап чыгуу жөнүндө “чечүү “Бул ыңгайсыз / 404 Ката табылган жок” орнотулгандан кийин “зенд-экспрессивдүү”

  1. Juciellen Cabrera мындай деди::

    Of абдан баалуу! Бул мени абдан окшош болгон бул маселени тактоо жардам. ыракмат!

Комментарий калтыруу

Сиздин электрондук почтанын дареги, жарыяланган жок.