使用Zend Framework 2一段时间后,我决定昨天尝试使用Symfony 2。我的Debian Jessie测试服务器上的安装顺利进行,并在评论出config.php中的localhost限制(当然还有app_dev.php)后,我能够完成基本配置步骤(即使我已经在根据yaml文件以前)。 加载欢迎页面后,当我发现它与文档让我的期望大不相同时,我感到非常惊讶。
不幸的是,我所看到的只是"主页。"以及窗口底部的工具栏。
我花了很多时间在网上搜索,发现了一个充满反映我经验的主题的手。但这些都没有得到解答。我发现了几个类似的问题,但没有一个提供的解决方案适合我。我的Apache Vhost配置绝对正常(例如指向web文件夹),我的PHP配置也是如此。到目前为止,我已经在Symfony项目中进行了零编码,所以导致问题的我不可能。 ;)但是说真的,我真的完全不知道可能导致页面呈现错误的原因。我可以看到源代码的头部没有加载单个CSS文件,这使我相信没有发生自举。但由于我对Symfony 2没有丝毫经验,这只是我的猜测。 顺便说一句,我仔细检查,Acme DemoBundkle已安装完毕。有人在某处提到文档中的欢迎页面正是如此。
如果你们有任何想法,请赐教,因为我真的想给Symfony 2一个机会。
[编辑]
今天早上我已经深入挖掘它了,尽管路由正确并且已经解析,但是app / Resources / views / default被加载了,它应该加载src / Acme / DemoBundle / views /欢迎/ index.html.twig
我越来越接近解决方案了。我一解决问题就立即更新这篇文章。
答案 0 :(得分:3)
我最好的猜测是通过命令行执行:
app/console cache:clear
app/console assets:install --env=dev
app/console assetic:dump --env=dev
考虑到您正在进入开发app_dev.php前端控制器。 这将构建您的CSS资产。试试看。
答案 1 :(得分:0)
我不完全确定这可以被认为是最佳做法,但至少我能够解决这个问题。 Symfony总是加载DefaultController,indexAction方法呈现默认的/ index.html.twig模板:
{% extends 'base.html.twig' %}
{% block body %}
Homepage.
{% endblock %}
由于我无法找到任何其他方法使AcmeDemo欢迎页面成为要加载的默认页面,我改变了
* @Route("/", name="homepage"
到
* @Route("/default", name="homepage"
src / AppBundle / Controller / DefaultController.php 中的
我几乎可以肯定,必须有一种方法可以将任何其他页面配置为默认显示,而无需更改defaultController,但我还没弄清楚如何。
[编辑]
好吧,明白了。我将我对 DefaultController 所做的更改还原并改进了 WelcomeController :
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
.
.
.
class WelcomeController extends Controller
{
/**
* @Route("/", name="_welcome")
.
.
.
}
因此在 src / Acme / DemoBundle / Resources / config / routing.yml 中:
_welcome:
resource: "@AcmeDemoBundle/Controller/WelcomeController.php"
type: annotation
现在它的工作完全正常,没有对DefaultController进行任何更改,我认为 - 这远非最佳实践,因为它可能是核心文件。
就像我说的那样,我对Symfony 2完全不熟悉,它与Zend Framework有很大的不同(虽然好!),所以对你来说可能看起来像基本知识,对我来说并不适合。 :)
答案 2 :(得分:0)
我也遇到了和你一样的问题。似乎创建项目生成器的开发人员在部署应用程序之前忘记设置routing.yml。
要解决此问题,只需更改app/config/routing.yml
这
resource: @AppBundle/Controller/
到
resource: @AcmeDemoBundle/Controller/
它只会更改默认控制器以在主页上调用,没有什么可能危及symfony项目的完整性。
我刚刚发现了这个,因为我正在重新学习symfony(我最后一次使用它,它仍然是1.4)
干杯!
答案 3 :(得分:0)
更改路由路径
以隐身模式工作