我有一个使用Silex的网站。
我已经在根文件夹中上传了一些文件,例如robots.txt
,并没有上传推送通知sdk
。
当我尝试使用url访问该文件时出现问题:
尝试从Chrome浏览器访问时,domain.com/robots.txt
出现错误
找不到GET /robot.txt
致命错误:未捕获的异常 'Symfony \ Component \ Routing \ Exception \ RouteNotFoundException'与 消息“无法为命名路由“”生成这样的路由的URL 不存在。'在 /home/path/domain.com/vendor/symfony/routing/Symfony/Component/Routing/Generator/UrlGenerator.php:134 堆栈跟踪:#0 /home/path/domain.com/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Extension/RoutingExtension.php(45): Symfony \ Component \ Routing \ Generator \ UrlGenerator-> generate(NULL,NULL, 错误)#1 /home/path/domain.com/data/twig/fe/bb/cd3e9843c1ef02ee591d59cfb1afd51eb5cd52af42e38573c035f7ef4128.php(146): Symfony \ Bridge \ Twig \ Extension \ RoutingExtension-> getPath(NULL,NULL)#2 /home/path/domain.com/vendor/twig/twig/lib/Twig/Template.php(276): __TwigTemplate_febbcd3e9843c1ef02ee591d59cfb1afd51eb5cd52af42e38573c035f7ef4128-doDisplay(Array, 阵列)#3 /home/path/domain.com/vendor/twig/twig/lib/Twig/Template.php(250): Twig_Template-> displayWithErrorHandling(Array,Array)#4 / home / path / domain在 /home/path/domain.com/vendor/twig/twig/lib/Twig/Template.php在线 291
答案 0 :(得分:0)
当您说出根文件夹时,是指public_html文件夹,还是包含诸如“模板”和“ src”之类的文件夹的文件夹?
当Silex尝试处理模板文档时,实际上会引发“找不到为'GET /robot.txt'的路由”之后的大型php错误。我猜测您的silex安装中的错误模板未正确设置。
如果robots.txt文件位于可公开访问的箔纸中,则不需要Silex控制器来提供文件,但是您确实需要将网络服务器配置为提供真实文件,然后再尝试将请求传递给index.php
这里https://silex.symfony.com/index.php/doc/2.0/web_servers.html
有一些出色的配置对于Apache,相关位是
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
对于nginx,相关位是
try_files $uri /index.php$is_args$args;
这些是配置的一部分,上面写着“检查此URL是否确实有文件,如果没有,则使用index.php”