За последние 24 часа нас посетили 35408 программистов и 1745 роботов. Сейчас ищут 826 программистов ...

Нужен совет спецов по путям к css (Суть в посте)

Тема в разделе "PHP для новичков", создана пользователем Nekomaru, 3 дек 2015.

  1. Nekomaru

    Nekomaru Активный пользователь

    С нами с:
    3 дек 2015
    Сообщения:
    14
    Симпатии:
    0
    Доброго всем времени.
    Столкнулся с проблемой при создании сайта. Теряется css стиль на страницах сайта.
    Пытаюсь написать новостную ленту, в контроллере 2 экшена, index и view ну всё по лору вобщем... index отвечает за выборку и вывод в цикле 10 последних... а вьюшка соответственно, вывод одной новости.
    И тут возникает проблема, главная страница сайта, страница списка отображаются нормально с css, а вот адреса типо сайт.ру/news/ сайт.ру/news/ 2/ теряют стили... вобщем если на конце адреса слешь, всё... css тю-тю.
    header.php вынесен в отдельный файл и инклюдится. css присобачены в нём... и присобачены вот так:
    Код (PHP):
    1. <link href="<?=TPL. 'css/style.css'?>" rel="stylesheet" />
    TPL конста
    Код (PHP):
    1. define('TPL', 'templates/default/'); 
    Пробовал подключать напрямую templates/default/css/style.css и через глобальную переменку $_SERVER['SERVER_NAME'] Всё равно теряет стили когда в конце слэш или id новости.

    Простите за многобуков, может быть кто то сталкивался с такой загвоздкой когда только начинал изучать php... помогите пожалуйста.

    Доп. инфо(мало ли вдруг понадобится):
    Файл маршрутов
    Код (PHP):
    1. return array(
    2.     'news/([0-9]+)' => 'news/view/$1',
    3.     'news' => 'news/index',
    4.     '' => 'main/index',
    5.   );  
    6.  
    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    PHP тут совершенно ни при чём. Проблем две: (1) Вы не знаете HTML и (2) не умеете пользоваться отладчиком в браузере. ;)
    Если коротко:
    'css/...' - от текущего пути (хост/путь/css/...)
    '/css/...' - от корня (хост/css/...)
     
  3. Nekomaru

    Nekomaru Активный пользователь

    С нами с:
    3 дек 2015
    Сообщения:
    14
    Симпатии:
    0
    Как раз php скорее всего тут и при чём.
    Я же писал... стили отображаются если адрес не имеет в конце слэша, например сайт.ру/news, но стоит поставить слэш сайт.ру/news/ как стили перестают отображаться.
    html я прекрасно знаю, а вот с пхп только знакомлюсь. Отладчиком я пользоватся умею, firebug для меня столп святой. Хрень в том что в файрбаге... все пути к стилям на месте.. да вот сами взгляните:
    [​IMG][​IMG]

    Если обратите внимание на поисковую строку в браузере, страница со слешэм. Стили не отображаются. Тем не менее в фаербаге ссылка со стилями присутствует, а самих стилей нет.

    Да кстати... совершенно позабыл про .htaccess в нём вот такие редиректы:
    Код (PHP):
    1. AddDefaultCharset utf-8
    2. RewriteEngine on
    3. RewriteBase /
    4.  
    5. RewriteCond %{REQUEST_FILENAME} !-f
    6. RewriteCond %{REQUEST_FILENAME} !-d
    7.  
    8. #Регулярное выражение все запросы (^(.*)$) перенаправлять на index
    9. RewriteRule ^(.*)$ index.php
    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  4. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Ещё раз для тех, кто в танке...
    Пропишите абсолютный путь к файлу: href="/templates/..." и будет Вам счастье.
     
  5. Nekomaru

    Nekomaru Активный пользователь

    С нами с:
    3 дек 2015
    Сообщения:
    14
    Симпатии:
    0
    Ну хорошо... ещё раз для тех кто реально в танке:
    Из моего ПЕРВОГО поста.
    "Пробовал подключать напрямую templates/default/css/style.css и через глобальную переменку $_SERVER['SERVER_NAME'] Всё равно теряет стили когда в конце слэш или id новости."

    Кстати, проблему решил абсолютным путём. Вчера не отображалось из-за того что memcashed тупил, сегодня почилстил на серве папку с кешем, всё заработало.
    Спасибо Вам что откликнулись и пытались помочь.
     
  6. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Ну, не надо было упираться и искать проблему в путях)
     
  7. Nekomaru

    Nekomaru Активный пользователь

    С нами с:
    3 дек 2015
    Сообщения:
    14
    Симпатии:
    0
    Да не.. тут не в путях было дело. Кеш тупил. Прописал абсолютный тем не менее оказалось что это было не обязательно. Сейчас константой прописан путь к стилям и всё работает как часы.
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    /path != path, ok?
     
  9. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    оффтопик
    - ты чем занимаешься по работе?
    - я сертифицированный специалист по путям к css...