Решение “Это неудобно / 404 Не найдена ошибка” После установки “Zend выразительных”

Работа с по промежуточного слоя, в этот пост мы будем решать проблемы “Это неудобно / 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-expressive-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/expressive/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. Установка очень проста:

$ composer 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

Всего просмотров: 190

Комментарий на “Решение “Это неудобно / 404 Не найдена ошибка” После установки “Zend выразительных”

  1. Juciellen Кабрера сказал:

    Большое значение! Помог мне прояснить проблему здесь, что было очень похожи. Спасибо!

Оставь ответ

Ваш электронный адрес не будет опубликован. Обязательные поля отмечены *