cakephp внутри подкаталога - PullRequest
       9

cakephp внутри подкаталога

0 голосов
/ 08 февраля 2011

У меня проблема с CakePHP, я не могу найти способ заставить CakePHP работать в подкаталоге.У меня есть веб-страница с адресом www.example.com, и я хочу, чтобы приложение CakePHP было на www.example.com/cake.www.example.com - это виртуальный хост, а cake - это подкаталог, в котором хранятся все файлы и каталоги тортов.Проблема в том, что когда я перехожу на www.example.com/cake, он запрашивает CakeController и не загружает таблицы стилей.Когда я перехожу на www.example.com/cake/users/register (= UsersController::register()), он показывает правильный сайт, но снова без CSS.

Поэтому мне нужно две вещи ... чтобы получить www.example.com/cake, чтобы отобразить домашнюю страницу изагруженные таблицы стилей.

Разве вы не знаете, как этого добиться?

Заранее спасибо

Ответы [ 3 ]

3 голосов
/ 08 февраля 2011

Скорее всего, ваш mod_rewrite не включен в Apache на вашей учетной записи хостинга.Посоветуйтесь с вашим хозяином.Другая возможная проблема, описанная ниже:

Вы изменили пути в webroot / index.php?

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

Например,

if (!defined('CAKE_CORE_INCLUDE_PATH')) { 
    define('CAKE_CORE_INCLUDE_PATH', 'home' . DS .'w3dev' . DS . 'public_html' . DS . 'clients' . DS . 'folderName' . DS . 'remote' . DS . 'v1.1' . DS .  'cake'); 
}

if (!defined('APP_DIR')) {
    define('APP_DIR', basename(dirname(dirname(__FILE__))). DS . 'v1.1' . DS . 'app'); 
}

Все вышеперечисленное зависит от вашего каталога на вашей учетной записи хостинг-сервера.Как ваш хост для ваших корневых данных пути, так что вы можете указать его соответственно.

3 голосов
/ 08 февраля 2011

Вы прочитали эту страницу в книге и внесли соответствующие изменения в /app/webroot/index.php?

Редактировать:

Проблема в том, что когда я захожу на сайт www.example.com/cake, он запрашивает CakeController и не загружает таблицы стилей.

Это указывает на то, что у вас неправильный файл .htaccess в корне вашего сайта (www, htdocs, public_html и т. д.), поскольку он пытается обработать запрос в структуре CakePHP.

Он должен не выглядеть так

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

Почему бы неt упростите себе жизнь, поместите CakePHP в корень и переместите страницы, которые находятся по адресу www.example.com, в app / webroot.Таким образом, он будет вести себя точно так, как вы хотите, то есть:

www.example.com/staticPage.html - отображает статическую страницу.

www.example.com/users - отображает индекс пользователей

Файлы вwebroot обслуживаются точно так же, как если бы они были в корне сайта.Подумайте о файлах CSS и JavaScript.

0 голосов
/ 08 февраля 2011

Я не знаком с Cake, но это почти наверняка какая-то проблема пути. Убедитесь, что путь к таблицам стилей указан правильно.

Я знаю, что некоторые фреймворки будут использовать функцию base_url () (или что-то с таким же именем), которая возвращает значение конфигурации, вы должны проверить свою конфигурацию, чтобы убедиться, что базовый URL установлен правильно.

...