2013-02-15 4 views
0

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

Я пытаюсь установить Symfony2 в папке (IE: http://www.mydomain.com/myapp), однако, я бегу на несколько вопросов:

Похоже, что я должен изменить все мои маршруты, чтобы указать на этот подпуть , IE:

fos_user_group: 
    resource: "@FOSUserBundle/Resources/config/routing/group.xml" 
    prefix: /myapp/group 

..что делает работу по маршрутизации.

ОДНАКО, независимо от того, что, несмотря на то, в фреймворка документации говорится, что assetic определит правильный путь (http://symfony.com/doc/current/book/templating.html#linking-to-assets), она все еще пытается найти активы из корневого домена, IE:

http://www.mydomain.com/bundles/acmedemobundle/js/script.js 

Я посмотрел в основном каждую ссылку на google по связанным вопросам, я пробовал RewriteBase /myapp, RewriteBase /myapp/web, но все безрезультатно.

Может ли кто-нибудь помочь мне здесь? Кажется безумным, что это трудно правильно направлять мои URL-адреса и активы во вложенную папку. Для удобства переносимости (даже если проблема с активами каким-то образом разрешена), не должно быть способа сделать это БЕЗ изменения всех моих маршрутов?

На стороне заметки, я еще не попытался попробовать это на сервере unix. В настоящее время все испытания проводятся на сервере wampserver.

+0

Вы были в состоянии выяснить, как заставить его работать без установки всех маршрутов с префиксом? – Asagohan

ответ

0

Вы можете установить базовый url в объекте маршрутизатора, возможно, это исправит вашу проблему?

$this->getContainer()->get('router')->getContext()->setBaseUrl('/myapp'); 

Если вы это сделаете, вам не нужно будет префикс всех ваших маршрутов с именем подкаталога.

+0

Маршрутизация на самом деле не проблема. Если я должен установить префикс в моей маршрутизации, я буду (хотя это не оптимально). Проблема заключается главным образом в активах, и факт для мобильности, у меня есть все эти подкаталоги на всех моих приложениях. – Mike

0

Я не знаю, если это все еще и проблема для вас, но это может помочь кому-то другому. Я считаю, что вы должны изменить ваш config.yml или config_dev.yml (в зависимости от окружающей среды)

Для активов, установленных этим (см раздел «шаблонный»):

framework: 
router: 
    resource: "%kernel.root_dir%/config/routing_dev.yml" 
    strict_requirements: true 
profiler: { only_exceptions: false } 
#set default asset root 
templating: 
    assets_base_urls: 
     http: [ /path/to/web ] 
     ssl: [ /path/to/web ] 

Где/путь/к/web - это родительская папка папки.

0

Мое решение это на локальной среде добавлял следующий код в app/config/config.yml

framework: 
    templating: 
     assets_base_urls: 
      http: "http://localhost/symfony_folder/" 
      ssl: "http://localhost/symfony_folder/" 
Смежные вопросы