Zend-Framework проблема с использованием маршрутов - PullRequest
1 голос
/ 05 июня 2011

UPDATE:

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

Например, mysite.com/public предоставляет мне правильный файл index.phtml ... mysite.com/index/testpage ДЕЙСТВИТЕЛЬНО служит мне testpage.phtml, но моя структура каталогов полностью повреждена, и я теряю все ссылки на изображения, таблицы стилей и т. Д. Я проверил свой .htaccess, и он точно соответствует рекомендациям.

Серьезное время чесать голову здесь ...

OP:

Hello ..

Я использую этот метод для перехвата URL-адресов и предоставления правильного содержимого

$router->addRoute(
    'list',
    new Zend_Controller_Router_Route('/list', array('controller'=>'index', 'action'=> 'list'))
    );

И он действительно хорошо работает, подает содержимое из list.phtml ...

но в тот момент, когда я пытаюсь что-либо «поднять» каталог, такой как этот, я теряю все свои таблицы стилей и другие относительные сценарии.

$router->addRoute(
    'listWithUsers',
    new Zend_Controller_Router_Route('/list/:users', array('controller'=>'index', 'action'=> 'list'))
    );

Это странно, потому что я могу получить доступ к переменной users и echo к экрану, просто я теряю все скрипты и таблицы стилей, когда URL содержит /

Для ясности я могу установить действия в indexController.php для перехвата URL-адресов, и это работает, но, похоже, он служит в качестве другого каталога, что приводит к потере всех относительных ссылок.

Спасибо за любую помощь. Пожалуйста, сообщите, если какие-то конкретные детали помогут.

1 Ответ

2 голосов
/ 05 июня 2011

Для любого вида приложения MVC, использующего такие маршруты, вы должны указать абсолютный путь для своих ресурсов. Это предотвратит возникшую проблему.

Например, если у меня есть веб-сайт, расположенный по адресу mysite.com/app1, а у меня есть ресурс, расположенный по адресу lib/jquery-1.2.6.min.js, допустимый путь будет /app1/lib/jquery-1.2.6.min.js.

Для этого я всегда использовал своего рода помощника для возврата базового URL сайта в моих представлениях.

<script type="text/javascript" src="<?php echo $this->baseUrl() ?>/lib/jquery-1.2.6.min.js"></script>

Вы можете использовать помощник вида или константу.

...