Symfony 2 не отображает страницу приветствия, как ожидалось


После некоторого использования Zend Framework 2 я решил вчера попробовать Symfony 2. Установка на моем тестовом сервере Debian Jessie прошла гладко, и после того, как я прокомментировал ограничения локального хоста в config.php (а также app_dev.php конечно) Я смог выполнить основные шаги по настройке (хотя ранее я уже позаботился об этом в соответствующем файле yaml). После загрузки страницы приветствия я был очень удивлен, когда узнал, что она сильно отличается от того, что документация заставила меня ожидать.

К сожалению, все, что я вижу, это слово "Домашняя страница". и панель инструментов в нижней части окна.

Я потратил много времени на поиск в Интернете и нашел множество тем, которые отражали мой опыт. Однако ни на один из них ответа не последовало. Я нашел пару похожих проблем, но ни одно из предложенных решений не сработало для меня. Моя конфигурация Apache Vhost абсолютно хороша (например, указывает на веб-папку), как и моя конфигурация PHP. Я до сих пор я делал нулевое кодирование в проекте Symfony, так что это не мог быть я, кто вызвал проблему. ;) Серьезно, хотя я действительно совершенно не понимаю, что, вероятно, может привести к неправильному отображению страницы. Я вижу, что в головной части исходного кода не загружено ни одного CSS-файла, что наводит меня на мысль, что начальной загрузки не происходит. Но так как у меня нет ни малейшего опыта работы с Symfony 2, это только мое предположение. Кстати, я дважды проверил, Установлен дембель Acme. Кто-то где-то упомянул, что Страница приветствия в документации показывала именно это.

Если у вас, ребята, есть какие-либо идеи, пожалуйста, просветите меня, так как я действительно хотел бы попробовать Symfony 2.

[Редактировать]

Сегодня утром я немного углубился в это, и, несмотря на правильность и анализ маршрутизации, загружено приложение/Ресурсы/представления/по умолчанию, где оно должно загружаться src/Acme/Демонтаж/просмотры/Приветствие/индекс.html.ветка

Я приближаюсь к решению. Я обновлю этот пост, как только решу проблему.

Author: Mark Tepper, 2014-12-11

4 answers

Моим лучшим предположением было бы выполнить через командную строку:

app/console cache:clear

app/console assets:install --env=dev

app/console assetic:dump --env=dev

Учитывая, что вы участвуете в разработке app_dev.php контроллер переднего плана. Это позволит создать ваши CSS-ресурсы. Попробуй это.

 3
Author: Martin Fasani, 2014-12-11 09:40:09

Я не совсем уверен, что это можно считать лучшей практикой, но, по крайней мере, я смог решить эту проблему. 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, и улучшил Контроллер приветствия:

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
.
.
.
class WelcomeController extends Controller
{
    /**
     * @Route("/", name="_welcome")
     .
     .
     .
}

И соответственно в src/Acme/DemoBundle/Ресурсы/конфигурация/маршрутизация.yml:

_welcome:
    resource: "@AcmeDemoBundle/Controller/WelcomeController.php"
    type:     annotation

Теперь он отлично работает без каких-либо изменения в контроллере DefaultController, что, я полагаю, было далеко не лучшей практикой, так как это, скорее всего, основной файл.

Как я уже сказал, я совершенно новичок в Symfony 2, и он сильно отличается от Zend Framework (хотя и хорошо!), Поэтому то, что может показаться вам базовым знанием, не для меня.:)

 0
Author: Mark Tepper, 2014-12-15 13:14:16

Я также столкнулся с той же проблемой, что и вы. Похоже, что разработчик, создавший генератор проектов, забыл настроить маршрутизацию.yml перед развертыванием своих приложений.

Чтобы исправить это, просто измените app/config/routing.yml

Из

resource: @AppBundle/Controller/

До

resource: @AcmeDemoBundle/Controller/

Это только изменение контроллера по умолчанию для вызова на домашней странице, ничто не может угрожать целостности вашего проекта symfony.

Я только сейчас нашел это, так как я заново изучаю symfony (в последний раз, когда я использовал его, он все еще был на 1.4)

Ура!

 0
Author: irfani arief, 2014-12-18 13:59:38
  1. Изменить путь маршрутизации

  2. Работа в режиме инкогнито

 0
Author: grzesiekmq, 2016-10-25 04:55:40