Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony2+;FOS休息包-常规路线_Symfony_Fosrestbundle - Fatal编程技术网

Symfony2+;FOS休息包-常规路线

Symfony2+;FOS休息包-常规路线,symfony,fosrestbundle,Symfony,Fosrestbundle,我正在使用Symfony2和fos restbundle开发一个应用程序。我想创建一些API路由和一些常规路由(AngularJS前端正好有一个)。这是我的fos_rest配置(以及sensio的一些配置行): sensio\u框架\u额外: 视图:{注释:false} 路由器:{annotations:true} 请求:{converters:true} fos_休息: 路由加载程序: 默认格式:json include_格式:true 参数获取程序侦听器:强制 body_listener:正

我正在使用Symfony2和fos restbundle开发一个应用程序。我想创建一些API路由和一些常规路由(AngularJS前端正好有一个)。这是我的fos_rest配置(以及sensio的一些配置行):

sensio\u框架\u额外:
视图:{注释:false}
路由器:{annotations:true}
请求:{converters:true}
fos_休息:
路由加载程序:
默认格式:json
include_格式:true
参数获取程序侦听器:强制
body_listener:正确
允许的\u方法\u侦听器:true
视图:
查看\u响应\u侦听器:“强制”
格式:
json:true
xml:对
格式\u侦听器:
规则:
-{path:'^/api',优先级:['json','xml'],回退\格式:json,首选\扩展名:true}
访问被拒绝\u侦听器:
json:true

正如您所看到的,我启用了查看\u响应\u侦听器并禁用了查看注释。我找不到为索引操作(AngularJS所必需的)定义“常规”(而不是REST)路由(和视图)的方法。不断出现错误:

ERROR - Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotAcceptableHttpException: "No matching accepted Response format could be determined" at C:\wamp\www\CRMProject\vendor\friendsofsymfony\rest-bundle\EventListener\FormatListener.php line 69 

如果您能提供帮助,我将不胜感激。

您可以为索引页添加其他规则(例如:

阅读有关格式侦听器的文档:

如中所建议,您还可以为站点的“正常”部分(而不是API)禁用格式侦听器:

通常在将此捆绑包与现有应用程序集成时 禁用某些路由的格式侦听器可能很有用。在里面 在这种情况下,可以定义一个规则来停止格式化 侦听器通过将stop设置为true作为规则来确定格式 选项包含此设置的任何规则以及下面的任何规则都将 不予以考虑,请求格式将保持不变


工作非常感谢你!我还有一个问题与前一个有关。有许多类似这样的错误:“NetworkError:406不可接受-”。我无法加载任何JS/CSS。和主要问题中的原因相同,但相同的解决方案并没有帮助。我尝试过这样的解决方案,但仍然得到那个错误。我还将文档后面的“fallback\u format”更改为null,但没有结果。仍在获取“服务器返回了一个“406不可接受”。这很奇怪,因为来自Fiddler的请求头看起来很好:Accept:*/*Accept Language:pl,en-US;q=0.7,en;q=0.3 Accept Encoding:gzip,deflateStats奇怪,因为我的服务器(nginx+php5fpm)我在资产上得到了200英镑。我在Symfony 4.3.3上也遇到了同样的问题,并且成功了。下面是实际的文档链接:
format_listener:
    rules:
        - { path: '^/api', priorities: ['json', 'xml'], fallback_format: json, prefer_extension: true }
        - { path: '^/', priorities: [ 'text/html', '*/*'], fallback_format: html, prefer_extension: true }
# app/config/config.yml
fos_rest:
    format_listener:
        enabled: true
        rules:
            - { path: '^/api', priorities: ['json', 'xml'], fallback_format: json, prefer_extension: false }
            - { path: '^/', stop: true } # Available for version >= 1.5