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.ветка
Я приближаюсь к решению. Я обновлю этот пост, как только решу проблему.
4 answers
Моим лучшим предположением было бы выполнить через командную строку:
app/console cache:clear
app/console assets:install --env=dev
app/console assetic:dump --env=dev
Учитывая, что вы участвуете в разработке app_dev.php контроллер переднего плана. Это позволит создать ваши CSS-ресурсы. Попробуй это.
Я не совсем уверен, что это можно считать лучшей практикой, но, по крайней мере, я смог решить эту проблему. 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 (хотя и хорошо!), Поэтому то, что может показаться вам базовым знанием, не для меня.:)
Я также столкнулся с той же проблемой, что и вы. Похоже, что разработчик, создавший генератор проектов, забыл настроить маршрутизацию.yml перед развертыванием своих приложений.
Чтобы исправить это, просто измените app/config/routing.yml
Из
resource: @AppBundle/Controller/
До
resource: @AcmeDemoBundle/Controller/
Это только изменение контроллера по умолчанию для вызова на домашней странице, ничто не может угрожать целостности вашего проекта symfony.
Я только сейчас нашел это, так как я заново изучаю symfony (в последний раз, когда я использовал его, он все еще был на 1.4)
Ура!
Изменить путь маршрутизации
Работа в режиме инкогнито