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

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

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

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

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

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

Этим утром я немного углубился в это, и, несмотря на правильность и анализ маршрутизации, он загружает app / Resources / views / default, куда он должен загрузить src / Acme / DemoBundle / views / Welcome / index.html .twig

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

2

Решение

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

app/console cache:clear

app/console assets:install --env=dev

app/console assetic:dump --env=dev

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

3

Другие решения

Я не совсем уверен, что это можно считать лучшей практикой, но, по крайней мере, я смог решить проблему. Symfony всегда загружал DefaultController, метод indexAction которого отображает шаблон default / 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, но мне еще предстоит выяснить, как это сделать.

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

Хорошо, понял. Я отменил изменения, которые я сделал в контроллера по умолчанию и улучшил WelcomeController:

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

и соответственно в SRC / Acme / DemoBundle / Ресурсы / конфигурации / routing.yml:

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

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

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

0

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

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

от

resource: @AppBundle/Controller/

в

resource: @AcmeDemoBundle/Controller/

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

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

Ура!

0

  1. изменить маршрут

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

0
По вопросам рекламы [email protected]