Zend Framework проблема с путями - PullRequest
0 голосов
/ 04 августа 2010

Я установил Zend Framework на мою локальную машину. Я настроил vhost в httpd.conf и добавил строку в мой файл hosts (127.0.0.1 mysite). У меня работает windows 7. Все работает отлично. Проблема в том, что когда я загружаю на хостинг сервер, пути перепутываются. Я загружаю на удаленный каталог под названием zf-framework. Чтобы получить доступ к странице индекса, мне нужно набрать этот URL: http://mysite/zf-framework/public. Он отображает страницу индекса, но когда я нажимаю любые ссылки на странице, они перепутываются и в конечном итоге выглядят как http://mysite/controller/action, когда Фактически это должно быть http://mysite/zf-framework/public/controller/action. Я нашел обходной путь для этой ситуации ... чтобы использовать echo $ this-> baseUrl (link) для любых ссылок, которые у меня есть в layout.phtml. Проблема является более серьезной, когда дело доходит до отправки форм. Я не могу использовать baseUrl там .... или я не знаю, как его использовать. Есть ли способ написать некоторые общие вещи конфигурации, чтобы это могло быть автоматически решено структурой. Допустим, вы написали что-то в index.php или bootstrap.php, что автоматически исправит пути?

Ответы [ 2 ]

1 голос
/ 04 августа 2010

Если вы используете Zend_Application, добавьте следующее в файл configs / application.ini:

resources.frontController.baseUrl = "/ your-path-here"

Есливы не используете Zend_Application, затем сделайте это в своем файле начальной загрузки или в файле index.php.

$front = Zend_Controller_Front::getInstance();
$front->setBaseUrl('/your-path-here');

Вам не нужно будет использовать $ this-> baseUrl () при отправке формы в ту же самуюaction и controller (просто не указывайте атрибут action в теге формы) или при использовании помощника по действиям Redirector.Однако ссылки в ваших скриптах вида потребуют от вас $ this-> baseUrl ('/ url-without-base'), что для меня не так уж и плохо.

0 голосов
/ 04 августа 2010

Я не на 100% в этом, но если вы укажете маршрут в вашем rout.ini как zf-framework / public / Controller / Action и т. Д., Это должно решить вашу проблему.

Я бы посчитал это бандой, но я не уверен на 100% в том, как правильно исправить вашу проблему, за исключением того, что вы изменяете файл vhosts на удаленном сервере, чтобы установить корень документа для общей папки. Если это не вариант, вышеприведенное должно работать, но знайте, что все ваши файлы потенциально доступны для всех (по крайней мере, для вашей структуры папок). Я не уверен, какой вред это может причинить (если таковое имеется), кроме того, если ваша схема базы данных находится в каталоге / data.

Лучше, если это возможно, попытаться получить общедоступный набор в качестве корневого веб-узла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...