无法确定匹配的可接受响应格式(symfony + docker)

uqxowvwt  于 2023-02-18  发布在  Docker
关注(0)|答案(1)|浏览(113)

我目前正在移植一个php应用程序,它在容器中使用symfony。
我有一个反向代理容器+每个域2个容器(一个用于nginx,一个用于php)
下面是app_dev.php

<?php

use Symfony\Component\Debug\Debug;
use Symfony\Component\HttpFoundation\Request;

require __DIR__.'/../vendor/autoload.php';
Debug::enable();

$kernel = new AppKernel('dev', true);
if (PHP_VERSION_ID < 70000) {
    $kernel->loadClassCache();
}
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

加载时,我得到:No matching accepted Response format could be determined
我有一个回溯显示:

in vendor/friendsofsymfony/rest-bundle/EventListener/FormatListener.php (line 71)
FormatListener->onKernelRequest(object(GetResponseEvent), 'kernel.request', object(TraceableEventDispatcher))

call_user_func(array(object(FormatListener), 'onKernelRequest'), object(GetResponseEvent), 'kernel.request', object(TraceableEventDispatcher))
in vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/Debug/WrappedListener.php (line 104)

WrappedListener->__invoke(object(GetResponseEvent), 'kernel.request', object(ContainerAwareEventDispatcher))
in vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php (line 212)

EventDispatcher->doDispatch(array(object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener)), 'kernel.request', object(GetResponseEvent))
in vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php (line 44)

EventDispatcher->dispatch('kernel.request', object(GetResponseEvent))
in vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/Debug/

TraceableEventDispatcher.php (line 139)
TraceableEventDispatcher->dispatch('kernel.request', object(GetResponseEvent))
in vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php (line 127)

HttpKernel->handleRaw(object(Request), 1)
in vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php (line 68)

HttpKernel->handle(object(Request), 1, true)
in vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php (line 202)

Kernel->handle(object(Request))
in web/app_dev.php (line 14)
ecbunoof

ecbunoof1#

您需要添加一个规则来处理工具栏,否则您将无法匹配请求格式。
例如,config/packages/fos_rest.yaml中的内容如下所示

- { path: ^/api/, priorities: [ html, json, xml ], fallback_format: ~, prefer_extension: true }
        - { path: '^/', priorities: [ 'html', '*/*'], fallback_format: html, prefer_extension: true }

这对我有用

相关问题