Доброго всем времени. Столкнулся с проблемой при создании сайта. Теряется css стиль на страницах сайта. Пытаюсь написать новостную ленту, в контроллере 2 экшена, index и view ну всё по лору вобщем... index отвечает за выборку и вывод в цикле 10 последних... а вьюшка соответственно, вывод одной новости. И тут возникает проблема, главная страница сайта, страница списка отображаются нормально с css, а вот адреса типо сайт.ру/news/ сайт.ру/news/ 2/ теряют стили... вобщем если на конце адреса слешь, всё... css тю-тю. header.php вынесен в отдельный файл и инклюдится. css присобачены в нём... и присобачены вот так: Код (PHP): <link href="<?=TPL. 'css/style.css'?>" rel="stylesheet" /> TPL конста Код (PHP): define('TPL', 'templates/default/'); Пробовал подключать напрямую templates/default/css/style.css и через глобальную переменку $_SERVER['SERVER_NAME'] Всё равно теряет стили когда в конце слэш или id новости. Простите за многобуков, может быть кто то сталкивался с такой загвоздкой когда только начинал изучать php... помогите пожалуйста. Доп. инфо(мало ли вдруг понадобится): Файл маршрутов Код (PHP): return array( 'news/([0-9]+)' => 'news/view/$1', 'news' => 'news/index', '' => 'main/index', ); PHP, JavaScript, SQL и другой код пишите внутри тегов Код ( (Unknown Language)): [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
PHP тут совершенно ни при чём. Проблем две: (1) Вы не знаете HTML и (2) не умеете пользоваться отладчиком в браузере. Если коротко: 'css/...' - от текущего пути (хост/путь/css/...) '/css/...' - от корня (хост/css/...)
Как раз php скорее всего тут и при чём. Я же писал... стили отображаются если адрес не имеет в конце слэша, например сайт.ру/news, но стоит поставить слэш сайт.ру/news/ как стили перестают отображаться. html я прекрасно знаю, а вот с пхп только знакомлюсь. Отладчиком я пользоватся умею, firebug для меня столп святой. Хрень в том что в файрбаге... все пути к стилям на месте.. да вот сами взгляните: Если обратите внимание на поисковую строку в браузере, страница со слешэм. Стили не отображаются. Тем не менее в фаербаге ссылка со стилями присутствует, а самих стилей нет. Да кстати... совершенно позабыл про .htaccess в нём вот такие редиректы: Код (PHP): AddDefaultCharset utf-8 RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d #Регулярное выражение все запросы (^(.*)$) перенаправлять на index RewriteRule ^(.*)$ index.php PHP, JavaScript, SQL и другой код пишите внутри тегов Код ( (Unknown Language)): [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
Ещё раз для тех, кто в танке... Пропишите абсолютный путь к файлу: href="/templates/..." и будет Вам счастье.
Ну хорошо... ещё раз для тех кто реально в танке: Из моего ПЕРВОГО поста. "Пробовал подключать напрямую templates/default/css/style.css и через глобальную переменку $_SERVER['SERVER_NAME'] Всё равно теряет стили когда в конце слэш или id новости." Кстати, проблему решил абсолютным путём. Вчера не отображалось из-за того что memcashed тупил, сегодня почилстил на серве папку с кешем, всё заработало. Спасибо Вам что откликнулись и пытались помочь.
Да не.. тут не в путях было дело. Кеш тупил. Прописал абсолютный тем не менее оказалось что это было не обязательно. Сейчас константой прописан путь к стилям и всё работает как часы.