Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.05.2024, 21:21
Аспирант
Отправить личное сообщение для firep91613 Посмотреть профиль Найти все сообщения от firep91613
 
Регистрация: 24.10.2023
Сообщений: 55

Слетают стили
Друзья, еще одна проблемка нарисовалась. Если в URL набрать localhost:4000/blog/, то стили загружаются, а если localhost:4000/blog - нет.

В папке blog: index.php, style.css. В index.php указано href="style.css". Я что-то не могу догнать, почему так происходит?
Ответить с цитированием
  #2 (permalink)  
Старый 03.05.2024, 07:35
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,571

В коде страницы лучше абсолютные пути к ресурсам указывать.

От корня.

У вас - "style.css" - оно ориентируется на урл, по нему решает где
Ответить с цитированием
  #3 (permalink)  
Старый 03.05.2024, 12:42
Аспирант
Отправить личное сообщение для firep91613 Посмотреть профиль Найти все сообщения от firep91613
 
Регистрация: 24.10.2023
Сообщений: 55

micscr,
echo __DIR__; // /learning/blog
<link rel="stylesheet" href="<?= __DIR__ . '/style.css' ?>"> // The requested resource /learning/blog/style.css was not found on this server.


Видимо это из-за докера.
Ответить с цитированием
  #4 (permalink)  
Старый 05.05.2024, 13:32
Аспирант
Отправить личное сообщение для firep91613 Посмотреть профиль Найти все сообщения от firep91613
 
Регистрация: 24.10.2023
Сообщений: 55

Nexus, может вы знаете?
Ответить с цитированием
  #5 (permalink)  
Старый 05.05.2024, 16:44
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,737

Так просто не сказать в чем проблема.

Константа __DIR__ вставляет абсолютный адрес текущей директории, но не относительно корневой директории приложения.
Обычно на сервере настраивается корневая директория приложения (директива DocumentRoot для Apache и root для nginx), а файлы ресурсов указываются уже относительно этой директории.

Например, если дерево файлов такое:

Код:
/learning - рабочая директория приложения
    /public - корневая директория приложения
        /assets
            /css
                /app.min.css
        /blog
            /styles.css
То корневая директория указывается как /learning/public, а ресурсы подключаются относительно директории public: /assets/css/app.min.css и /blog/styles.css
Ответить с цитированием
  #6 (permalink)  
Старый 05.05.2024, 18:37
Аспирант
Отправить личное сообщение для firep91613 Посмотреть профиль Найти все сообщения от firep91613
 
Регистрация: 24.10.2023
Сообщений: 55

Nexus,
спасибо.
Код:
sudo docker run -p 4000:4000 -v "$(pwd)":/learning -w /learning php_learning php -S 0.0.0.0:4000 -t /learning/blog

<link rel="stylesheet" href="/style.css">
Так заработало.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить стили скриптами kolhoz jQuery 1 23.03.2016 15:40
Как при наведении на родительский элемент "вкл" стили :hover::before для дочернего? Gera Herbst Events/DOM/Window 4 30.08.2015 14:41
Переопределить стили формы из внешнего скрипта... Round (X)HTML/CSS 8 02.10.2013 20:40
Как для Jquery tabs указать свои стили? Rooner jQuery 6 05.12.2012 22:46
Имеет ли значение где указывать стили? citizen Events/DOM/Window 5 25.10.2012 07:51