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