В общем делаю подобие шаблонизатора У меня есть роутинг и мне кажется,что он считает путь к стилям в link за page роутинг: Код (PHP): function router(){ if ($_SERVER['REQUEST_URI'] == "/") { $module = 'do'; $page = 'index'; } else { $URL_Path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); $URL_Parts = explode('/', trim($URL_Path, ' /')); $module = array_shift($URL_Parts); $page = array_shift($URL_Parts); if (!empty($module)) { $param = array(); for ($i = 0; $i < count($URL_Parts); $i++) { $param[$URL_Parts[$i]] = $URL_Parts[++$i]; } } } define('MODULE',$module); define('PAGE',$page); if(MODULE == "do"){ $option = ROOT.'location/'.PAGE.'.class.php'; if(!empty($page)){ require_once $option; $view = new $page; $view = $view->getBody(); echo $view; }else{ echo "home page"; } } elseif(MODULE == "admin"){ echo "admin"; } elseif(MODULE == "404"){ echo "404"; } else{ echo "page"; } }
Конечно,я в код вью вс проверил,путь верный. Добавлено спустя 2 минуты 23 секунды: Не,не угадал,путь у меня указывается в файловой системе. D:\home\r.ru\www/templates/Default/style.css
Чего-чего? Какой файловой системы, вы что? от корня сайта должен быть. Вы же свою файловую систему на хостинг не потащите. И если в файловой системе, то протокол должен быть file://. Добавлено спустя 45 секунд: Так что покурите ещё раз ссылку от denis01 хорошенько
Ну у меня тут такая штука Код (Text): define('ROOT', dirname(__FILE__) . '/'); } function getRoot(){ return 'templates/'.TMP_NAME.'/'; } private function ReplaceStringRoot($tmp_content){ return str_replace("{root}",ROOT.$this->getRoot(), $tmp_content); } <link rel="stylesheet" href="{root}style.css" /> Так что и на хостинге всё норм будет. А вот есть от корня сайта провожу,тогда он мне выводит page Как я и говорил,он похоже его за page считает,что же с этим делать? Добавлено спустя 28 минут 12 секунд: Ошибка исправлена.Проблема была в роутере. Добавил руль: Код (Text): RewriteEngine on RewriteBase / Options All -Indexes RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^resource/(.*)$ resource/$1 [L] RewriteRule ^templates/(.*)/(.*)$ templates/$1/$2 [L] RewriteRule ^.*$ [NC,L] RewriteRule ^.*$ index.php [NC,L]
В общем есть от части рабочий роутинг: Код (PHP): function router(){ if ($_SERVER['REQUEST_URI'] == "/") { $module = 'do'; $page = 'index'; } else { $URL_Path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); $URL_Parts = explode('/', trim($URL_Path, ' /')); $module = array_shift($URL_Parts); $page = array_shift($URL_Parts); if (!empty($module)) { $param = array(); for ($i = 0; $i < count($URL_Parts); $i++) { $param[$URL_Parts[$i]] = $URL_Parts[++$i]; } } } define('MODULE',$module); define('PAGE',$page); if(MODULE == "do"){ $option = ROOT.'location/'.PAGE.'.class.php'; if(!empty($page)){ require_once $option; $view = new $page; $view = $view->getBody(); echo $view; }else{ echo "home page"; } } elseif(MODULE == "admin"){ echo "admin"; } elseif(MODULE == "404"){ echo "404"; } elseif(MODULE == ""){ echo "page"; }else{ } } Но так же есть шаблонизатор,в котором не работает link css файла из-за перевода на index.php Код (Text): RewriteEngine on RewriteBase / Options All -Indexes RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^resource/(.*)$ resource/$1 [L] RewriteRule ^templates/(.*)/style.css$ templates/$1/style.css [L] RewriteRule ^.*$ [NC,L] RewriteRule ^.*$ index.php [NC,L] Пробовал дописать руль Код (Text): RewriteRule ^templates/(.*)/(.*)$ templates/$1/$2 [L] Но тогда все подобно нужные пути превращаются в путь к стилям. Подскажите что делать...
В общем есть подобный роутинг Код (PHP): function router(){ if ($_SERVER['REQUEST_URI'] == "/") { $module = 'do'; $page = 'index'; } else { $URL_Path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); $URL_Parts = explode('/', trim($URL_Path, ' /')); $module = array_shift($URL_Parts); $page = array_shift($URL_Parts); if (!empty($module)) { $param = array(); for ($i = 0; $i < count($URL_Parts); $i++) { $param[$URL_Parts[$i]] = $URL_Parts[++$i]; } } } define('MODULE',$module); define('PAGE',$page); if(MODULE == "do"){ $option = ROOT.'location/'.PAGE.'.class.php'; if(!empty($page)){ require_once $option; $view = new $page; $view = $view->getBody(); echo $view; }else{ echo "home page"; } } elseif(MODULE == "admin"){ echo "admin"; } elseif(MODULE == "404"){ echo "404"; } elseif(MODULE == ""){ echo "page"; }else{ } } И с ним не работают ссылки в шаблонизаторе,по скольку всё переводит в index.php Пробовал дрбавить руль Код (Text): RewriteRule ^templates/(.*)/(.*)$ templates/$1/$2 [L] Но тогда все ссылки в шаблоне заменяются на путь к стилям. В общем я не знаю что делать. Помогите пожалуйста