Пути к файлам — важная основа
12 минЗачем понимать пути?
Когда вы работаете с кодом, постоянно нужно указывать, где лежат файлы:
- Подключить CSS-стили к HTML
- Загрузить картинку на страницу
- Подключить один PHP-файл к другому
- Настроить Docker на работу с вашей папкой
Если путь указан неправильно — ничего не работает. Давайте разберёмся раз и навсегда.
Как устроена файловая система
Файлы на компьютере организованы в папки (директории). Папки могут содержать файлы и другие папки. Это создаёт дерево:
Windows:
C:\
├── Users\
│ └── Иван\
│ ├── Documents\
│ │ └── projects\
│ │ └── my-blog\
│ │ └── test.php
│ └── Desktop\
└── Program Files\
Mac/Linux:
/
├── Users/
│ └── ivan/
│ ├── Documents/
│ │ └── projects/
│ │ └── my-blog/
│ │ └── test.php
│ └── Desktop/
└── Applications/
Абсолютный путь
Абсолютный путь — это полный адрес файла от корня диска. Как почтовый адрес с городом, улицей и квартирой.
Windows:
C:\Users\Иван\Documents\projects\my-blog\test.php
Mac/Linux:
/Users/ivan/Documents/projects/my-blog/test.php
- Windows использует обратные слеши:
\- Mac/Linux используют прямые слеши:
/- Windows начинается с буквы диска:
C:\- Mac/Linux начинаются просто со слеша:
/
Относительный путь
Относительный путь — путь от текущей папки. Как сказать "в соседнем доме" вместо полного адреса.
Допустим, вы находитесь в папке my-blog. Тогда:
| Путь | Что означает |
|---|---|
test.php |
Файл test.php в текущей папке |
./test.php |
То же самое (. = текущая папка) |
images/logo.png |
Файл logo.png в подпапке images |
../other.php |
Файл в родительской папке (.. = на уровень выше) |
../../file.txt |
На два уровня выше |
Специальные обозначения
.(точка) — текущая папка..(две точки) — родительская папка (на уровень выше)~(тильда) — домашняя папка пользователя (Mac/Linux)
Пример структуры проекта
Вот как будет выглядеть наш блог:
my-blog/
├── docker-compose.yml # Настройки Docker
├── public/ # Публичная папка (сюда смотрит веб-сервер)
│ ├── index.php # Главная страница
│ ├── about.php # Страница "О нас"
│ └── assets/ # Статические файлы
│ ├── css/
│ │ └── style.css
│ └── images/
│ └── logo.png
└── config/
└── database.php # Настройки базы данных
Примеры путей внутри проекта
Если вы в файле index.php и хотите подключить CSS:
<link rel="stylesheet" href="assets/css/style.css">
Или с использованием абсолютного пути от корня сайта:
<link rel="stylesheet" href="/assets/css/style.css">
Путь
/assets/css/style.css (начинается со слеша) — это путь от корня сайта, а не от корня диска! В браузере / означает корень вашего сайта (папку public).
Как узнать текущий путь
В терминале
pwd
В PHP
<?php
echo __DIR__; // Папка текущего файла
echo __FILE__; // Полный путь к текущему файлу
?>
Типичные ошибки
Причина: Неправильный путь
Решение: Проверьте путь в инструментах разработчика браузера (F12 → Console)
Причина: Путь указан относительно не той папки
Решение: Используйте
__DIR__ для надёжных путей
Подводим итог
Теперь вы понимаете:
- Что такое абсолютный и относительный путь
- Как устроена файловая система
- Что означают
.,..,/ - Как будет выглядеть структура нашего проекта
Материалы по теме
- Глоссарий digital-терминов Глоссарий
- Статьи блога по разработке и SEO Блог
- Практические чеклисты по внедрению Чеклисты