我正在关注 symfony 的教程,但遇到了障碍。
我的设置是当前版本的 xampp(在 Windows 上运行),所以我的 apache 和 php 是相对最新的。
跟随他们的“快速游览”在这里:
http://symfony.com/doc/current/quick_tour/the_big_picture.html
在开发环境中一切都很好。但是,进一步遵循指南,我开始通过此处的指南创建自己的测试包:
http://symfony.com/doc/current/book/page_creation.html
并且无法让它在生产环境中正常工作。(它在开发环境中运行良好,就像预装的演示一样。
我尝试通过 php app/console cache:clear --env=prod --no-debug 命令清除缓存,但这并没有帮助(而且似乎也是搜索时弹出的唯一建议。
查看路线时,我可以看到我的“/hello/{name}”路线在路线列表中显示良好。
我的 app/config/routing.yml 有:
acme_hello:
resource: "@AcmeHelloBundle/Resources/config/routing.yml"
prefix: /
应该的,然后我的 src/Acme/HelloBundle/Resources/config/routing.yml 有
hello:
path: /hello/{name}
defaults: { _controller: AcmeHelloBundle:Hello:index }
有人对可能出现的问题有什么建议吗?(我还尝试通过从 routing_dev.yml 文件中复制路由信息并在 appkernel.php 文件中重新分配捆绑包,将开箱即用的演示转换为生产路由,但这有同样的问题)
- -编辑 - -
每个请求,这是我的 appkernel.php 文件
使用 Symfony\Component\HttpKernel\Kernel;使用 Symfony\Component\Config\Loader\LoaderInterface;
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = array(
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
new Symfony\Bundle\SecurityBundle\SecurityBundle(),
new Symfony\Bundle\TwigBundle\TwigBundle(),
new Symfony\Bundle\MonologBundle\MonologBundle(),
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
new Symfony\Bundle\AsseticBundle\AsseticBundle(),
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
new JMS\AopBundle\JMSAopBundle(),
new JMS\DiExtraBundle\JMSDiExtraBundle($this),
new JMS\SecurityExtraBundle\JMSSecurityExtraBundle(),
new Acme\HelloBundle\AcmeHelloBundle(),
new Acme\DemoBundle\AcmeDemoBundle(),
);
if (in_array($this->getEnvironment(), array('dev', 'test'))) {
$bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
$bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
$bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
}
return $bundles;
}
public function registerContainerConfiguration(LoaderInterface $loader)
{
$loader->load(__DIR__.'/config/config_'.$this->getEnvironment().'.yml');
}
}
---第二次编辑---
我发现了问题。我认为 prod 日志中没有显示任何内容很奇怪,所以我想可能有什么东西正在重定向我,导致我完全错过了 app.php 文件。
事实证明,这就是问题所在。我清空了 web 文件夹中的 .htaccess 文件(symfony 预配置的那个),然后一切都神奇地开始工作了。