Giải quyết “Điều này là khó khăn / 404 Không tìm thấy lỗi” Sau khi cài đặt của các “Zend expressive”

Làm việc với Middleware, trong bài này, chúng tôi sẽ giải quyết vấn đề “Điều này là khó khăn / 404 Không tìm thấy lỗi” Sau khi cài đặt của các “Zend expressive”.

Vấn đề

Recentemente, interessado em ver como os Middleware funcionam, Tôi đã cài đặt các “zend-expressive-skeletonconforme o Guia Quick Start: Using the Skeleton + Installer:

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

Sau này, para checar o resultado, acessei o navegador no endereço http://localhost/expressive/public/ e peguei o seguinte erro:

Oops!
Điều này là khó khăn.
 
We encountered a 404 Không tìm thấy lỗi.
 
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.

Giải pháp

A mensagem de erro indicava que a página não tinha sido encontrada, do đó,, parecia um problema de PATH (cách) 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/expressive/public/.

Dù sao, 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/

Bây giờ có, 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:

$ composer require Los/basepath

Sau này, basta adicionar o Middleware como um dos primeiros na sua aplicação. Ví dụ:, eu coloquei a chamada no arquivopublic\index.php”, logo após “$app ter sido inicializada:

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

That’s it!

Referência

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

Tổng lượt truy cập: 193

Um comentário sobreGiải quyết “Điều này là khó khăn / 404 Không tìm thấy lỗi” Sau khi cài đặt của các “Zend expressive”

Để lại câu trả lời

Các địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *