шийдвэрлэх “Энэ нь эвгүй юм / 404 Олж чадаагүй алдаа” суулгасны дараа “zend-илэрхийлэлтэй”

Middleware хамтран ажиллах, Энэ асуудлыг хэрхэн шийдвэрлэх вэ хариулах “Энэ нь эвгүй юм / 404 Олж чадаагүй алдаа” суулгасны дараа “zend-илэрхийлэлтэй”.

асуудал

Recentemente, interessado em ver como os Middleware funcionam, Би суулгалтыг хийсэн “zend-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 нь 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 (арга зам) 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/

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 Лос / 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 “$апп” ter sido inicializada:

1
$апп->pipe(шинэ \LosMiddleware\BasePath\BasePath('/expressive/public'));

That’s it!

Referência

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

Нийт хандахыг: 193

дээр нь шинжилгээ “шийдвэрлэх “Энэ нь эвгүй юм / 404 Олж чадаагүй алдаа” суулгасны дараа “zend-илэрхийлэлтэй”

  1. Juciellen Cabrera гэж хэлсэн:

    асар их үнэ цэнэтэй! Энэ нь надад маш төстэй байсан энэ асуудлыг тодруулах тусалсан. баярлалаа!

хариу үлдээгээрэй

Таны и-мэйл хаяг хэвлэгдсэн байх болно. Шаардлагатай талбарууд нь тэмдэглэгдсэн байна *