Корневая папка сайта

Корень сайта — где это и что это.

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


Допустим, Вы на компьютере создали папку под названием «Семья», закинули в нее свои фотографии, и в нее же поместили папку «Мы на природе» с видеороликами. Корневой в данном случае является «Семья», и все содержимое лежит в ее корне. А вот файлы из «Мы на природе» находятся на следующем от корневого уровне вложенности. И так далее.

Та же картина на хостинге — корень сайта находится на первом уровне. Сама корневая папка на хостингах открывается первой по умолчанию и называется по-разному у разных провайдеров (например, www., html).

На хостинге Макхост, которым пользуюсь я и на примере которого пишу эту серию статей, она называется httpdocs.

Наличие корневого каталога по умолчанию означает следующее: если у Вас на компьютере приготовлена папка со своим лендингом для загрузки на хостинг, Вам нужно закачивать ее не целиком, а только то, что внутри, чтобы все содержимое легло в корень сайта, а не было на втором уровне вложенности. Надеюсь, понятно.

Для наглядности я нарисовал картинку

А вот так выглядит корень одного из моих сайтов в аккаунте хостинга

Путь к корню сайта — это адрес Вашего основного сайта (домена), например, http://example.ru.

По умолчанию, при указании пути до любой папки роботы поисковиков открывают файл под названием index (расширением html или php), поэтому дописывать его не нужно — сработает такая ссылка.

А вот чтобы указать путь к другим файлам в корне сайта, необходимо их название добавить к адресу через слэш (косую черту), например, http://example.ru/kartinka.png.

Как правильно указать путь к файлам на других уровнях.

Допустим, в корне сайта лежит папка XXX, в ней следующая YYY, а уже в ней изображение kartinka.png. Тогда путь к ней прописывается как http://example.ru/xxx/yyy/kartinka.png.

То есть, указывается адрес корневого каталога, затем через слэш имя первой вложенной папки, опять же через слэш следующей и так далее до нужной (если они вложены одна в другую), а затем уже пишется название нужного файла.

Такой путь называется абсолютным или полным — с указанием протокола (http или https) и всеми последующими уровнями. Есть еще относительный путь, но про него как-нибудь в другой раз — не будем все собирать в кучу.

На одном домене, кроме основного сайта, можно держать множество других одностраничных лендингов или многостраничников. Для этого, к примеру, можно разместить в корне (или на другом уровне) отдельные папки с лендингами и в ссылке указывать к ним путь — роботы автоматически откроют в них индексный файл index.html или index.php. Если же он назван по-другому, необходимо просто дописать его в адресе, как я уже говорил выше.

Немного практики.

Чтобы на Макхост открыть какой-либо корневой каталог, необходимо:

  1. В левом меню нажать ссылку «Сайты».
  2. Выбрать из появившегося списка нужный и кликнуть по нему.
  3. В открывшемся меню управления выбрать «Файловый менеджер».

Все, каталог открыт.

Часто при работе с сервисами у Вас требуют: «в корне сайта создайте файл с именем»… Как это сделать?

Есть два варианта — создать его на компьютере и закачать в корневую папку или сделать это прямо на хостинге. Начнем с второго способа — спускаемся вниз содержимого каталога и жмем соответствующую ссылку (замечу, что таким же способом можно создать и новую папку)

В открывшемся окне пишем название нового файла и нужное расширение — html, php, txt или другое. Я на примере создаю html.

Вот он разместился в корне сайта, но пустой — внутри нет ничего.

Чтобы вставить необходимый текст или код (или отредактировать существующий), нужно в этой же строке нажать на карандашик справа. Откроется окно, вписываете необходимое и сохраняете. Все.

Если необходимо загрузить файл в корневой каталог сайта (как и в любое другое место), действуем по схеме выше — спускаемся вниз списка в открытом каталоге, где хотим разместить загруженное, и жмем «Закачать…» (смотрите на скриншоте выше).

Далее все как обычно — всплывает окно с выбором объекта загрузки, находите нужное на компьютере и закачиваете. Теперь можно указать путь к файлу, если потребуется.

На этом заканчиваю. Остались вопросы — читайте подробнее о том, как заливать на хостинг.

Чем отличаются пути в PHP и URL

Когда мы смотрим любимый фильм или сериал, мы видим только готовый продукт.

А за кадром существует совсем другой, невидимый для нас мир: стилисты и гримёры, искусственные декорации, наложение спецэффектов и многое другое.

В PHP существует такое же разделение. С одной стороны — реальная файловая система с реальными папками и файлами, с другой — URL адреса, которые могут не иметь ничего общего с реальной файловой структурой.

Если ты видишь на каком-нибудь сайте страницу с URL /category/monitors — это совсем не значит, что на сайте есть скрипт /category/monitors/index.php.

Вполне вероятно, что и такой папки там тоже нет, а все URL адреса обрабатываются одним единственным PHP файлом.


И даже если в URL присутствует расширение файла, например /about.html — это тоже не говорит о существовании файла about.html. Может он есть, а может и нет.

Новички часто путают пути к реальным файлам с URL адресами. Сейчас я разберу пару таких ошибок, на примере которых можно будет прочувствовать разницу.

Ошибка №1: Подстановка физического пути в URL

Очень частая ошибка новичков — пытаться подставить в URL адрес ссылку на физический файл, вроде такого:

Это неправильно. Браузер не может видеть реальную файловую структуру сервера. Он не видит никаких дисков D, он видит только URL адреса.

Правильная ссылка выглядит так (разницу объясню чуть позже):

Ошибка №2: Подключение скриптов по URL

Иногда новички пытаются подключить физический файл по его URL:

Это неправильно. Во-первых, подключится не сам скрипт, а результат его работы. Во-вторых, подключать какие-то файлы через URL вообще идея очень опасная.

Как правильно:

Базовые решения

Первый набор решений основан на использовании функции , комбинации функций , и , и также функции .

Использование

Первое решение базируется на использовании функции которая позволяет выполнять поиск пути с помощью шаблонов. Функция имеет два параметра:

  • (обязательный): шаблон поиска
  • (опциональный): один или несколько флагов, описание которых можно найти в документации

Рассмотрим примеры. Для поиска в директории всех файлов и директорий, имена которых заканчиваются на .txt, следует использовать код:

<?php
$filelist = glob("*.txt");

Если вывести переменную, то получим:

array (
  0 => 'article.txt',
  1 => 'text.txt'
)

Если нужен список файлов и директорий, имена которых начинаются на “te”, то код будет выглядеть так:

<?php
$filelist = glob("te*");

А вывод имеет вид:

array (
  0 => 'test.dat',
  1 => 'text.txt'
)

А для получения списка только директорий с именами, содержащих “ma”, используем код:

<?php
$filelist = glob("*ma*", GLOB_ONLYDIR);

Последний пример выведет:

array (
  0 => 'manager'
)

Обратите внимание, что в последнем примере использован флаг в качестве второго параметра функции. Поэтому файл исключен из списка

Хотя функция очень проста в использовании, иногда она недостаточно гибкая. Например, нет флага для получения только файлов (без директорий), которые соответствуют шаблону.

Используем , , и  .

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

Функция  открывает директорию и возвращает дескриптор соединения. Как только дескриптор получен, можно использовать функцию . С каждым обращением данная функция выдает имя следующего файла или директории внутри открытого каталога. Если все имена уже были перечислены, функция возвращает false. Для закрытия дескриптора используется функция .

В отличие от использования функции , данный подход сложнее, так как у вас нет параметров, которые помогают фильтровать список возвращаемых имен файлов и директорий. Вы должны выполнить фильтрацию самостоятельно, чтобы получить нужный результат.

Ниже приведенный пример возвращает список имен файлов и директорий начинающихся на “te”:

<?php
$filelist = array();
if ($handle = opendir(".")) {
    while ($entry = readdir($handle)) {
        if (strpos($entry, "te") === 0) {
            $filelist[] = $entry;
        }
    }
    closedir($handle);
}

При выполнении выше приведенного кода, переменная будет содержать такие включения, как  “.” и “..”. Это две виртуальные директории, которые имеются в каждом каталоге файловой системы. Они представляют текущий каталог и родительский каталог соответственно.

Второй пример выводит только файлы, содержащиеся в заданном каталоге.

<?php
$filelist = array();
if ($handle = opendir(".")) {
    while ($entry = readdir($handle)) {
        if (is_file($entry)) {
            $filelist[] = $entry;
        }
    }
    closedir($handle);
}

Пример выдаст следующее:

array (
  0 => 'article.txt',
  1 => 'master.dat',
  2 => 'script.php',
  3 => 'test.dat',
  4 => 'text.txt'
)

Использование

В завершение представим функцию . Она имеет только один обязательный параметр: путь для чтения.  Функция возвращает массив файлов и директорий, расположенных по указанному пути. Для получения списка файлов и директорий по определенному критерию нужно выполнить дополнительную фильтрацию. С другой стороны, решение получается более кратким и не требует управления дескрипторами.

Данный пример показывает, как получить список файлов и каталогов, имена которых начинаются на “te”:

<?php
$entries = scandir(".");
$filelist = array();
foreach($entries as $entry) {
    if (strpos($entry, "te") === 0) {
        $filelist[] = $entry;
    }
}

Список файлов из папки php с ссылкой на него

Как из списка файлов сделать список файлов с ссылками на эти файлы!?

Хотите!? Ну конечно же хотите! В чем смысл.

Зачем и где это можно применить!?

Мы немного отвлеклись…

Возьмем тот, же алгоритм и добавим туда немного кода и получим вот такой вариант:

В переменной $primer_url — путь до папки…

В нашем случае:

$primer_url = «__a-data/Z-arhiv/scandir-ili-sodergimoe-v-papke/1/»;

Вывод:

while (false !== ($file = readdir($handle))) { 

    if ($file != «.» && $file != «..») { 

       echo  ‘<a href=»https://dwweb.ru/’.$primer_url.’/’.$file.'» target=»_blank»>’.$file.'</a>’.»\n»; 

    } 

}

И см.результат:

Elitsin-alkash.htmlGorbachev-prodal-rodinu.txtGorbachev-predatel.htmlGorbachev-razvalil-SSSR.phpamerikosyi_kazlyi.txtobama_pidurok.htmlGorbachev-goret-tebe-v-adu.dat

+ можно взять и вывести еще и название страницы, но я уже есть хочу и что-то я запарился эту страницу оформлять…

Работа с потоком

// Открытие потока на чтение и получение его дескриптора
$f = fopen("file.txt", "r") or die("Не могу открыть файл!");

// Закрытие потока
fclose($f);

// Открытие потока на чтение и запись
$f = fopen("file.txt", "r+");
// Открытие потока на запись. Указатель помещается в конец файла
$f = fopen("file.txt", "a");
// Открытие потока на чтение и запись. Указатель помещается в конец файла
$f = fopen("file.txt", "a+");
// Открытие потока на запись. Файл обрезается до нулевой длины
$f = fopen("file.txt", "w");
// Открытие потока на чтение и запись. Файл обрезается до нулевой длины
$f = fopen("file.txt", "w+");

// Читаем файл кусками
$f = fopen("file.txt", "r");
// Читаем первые 5 байт из потока
echo fread($f, 5);
// Читаем следующие 3 байта из потока
echo fread($f, 3);
//Выводим всё с текущей позиции до конца
fpassthru($f);
fclose($f);

// Читаем файл построчно в массив
$f = fopen("file.txt", "r");
$lines = [];
while ( $line = fgets($f) ){
  $lines[] = $line;
}
fclose($f);

// Читаем файл построчно в массивы, вырезаем html-тэги, оставляя нужные
$f = fopen("file.html", "r");
$lines = [];
while ( $line = fgetss($f, 4096, "<p><br>") ){
	$lines[] = $line;
}
fclose($f);

// Читаем файл побайтово в массив
$f = fopen("file.txt", "r");
$bytes = [];
while ( !feof($f) ){
	$bytes[]= fgetc($f);
}
fclose($f);

// Пишем в файл
$f = fopen("file.txt", "r+");
fwrite($f, "Новый текст", 25);
fclose($f);

// Пишем в конец файла
$f = fopen("file.txt", "a");
fputs($f, "\nНовая строка");
fclose($f);

// Читаем последние 10 байт из потока
$f = fopen("file.txt", "r");
// Устанавливаем указатель в нужную позицию
fseek($f, -10, SEEK_END);
// В какой позиции мы находимся?
echo ftell($f);
// Читаем данные
echo fread($f, 10);
// Устанавливаем указатель в начало потока
rewind($f);
fclose($f);

Несколько способов получить список файлов из папки

  1. -> scandir
  2. -> opendir + readdir
  1. Для того, чтобы получить список файлов в паке с помощью scandir, нам потребуется несколько предварительных телодвижений сделать

    Нам нужен путь на сервере до корневой папки, у меня эта конструкция весит в самом верху сайта, именно в таом виде, потому, что первую часть намного легче запомнить, чем вторую:

    $home = $_SERVER;

    Далее соединим петь на сервере с путем от корневой до файла:

    $dir = $home . ‘/__a-data/Z-arhiv/scandir-ili-sodergimoe-v-papke/1/’;

    Применим к данной переменной и получим список всех элементов в папке:

    $files = scandir($dir);

    Выведем список фалой из папки с помощью print_r:

    print_r($files);

    Соберем весь код вместе:

    $home = $_SERVER;

    $dir = $home . ‘/__a-data/Z-arhiv/scandir-ili-sodergimoe-v-papke/1/’;

    $files = scandir($dir);

    print_r($files);

    Array

    => .

    => ..


    => Elitsin-alkash.html

    => Gorbachev-goret-tebe-v-adu.dat

    => Gorbachev-predatel.html

    => Gorbachev-prodal-rodinu.txt

    => Gorbachev-razvalil-SSSR.php

    => amerikosyi_kazlyi.txt

    => obama_pidurok.html

    + Как избавиться от виртуальных директорий…

  2. Для получения списка файлов из папки можно воспользоваться :

    opendir — открываем папку уже в выше приведенном пункте $dir

    $handle = opendir($dir);

    Создаем цикл и внутри прописываем условие пока файлы не кончатся цикл продолжается…

    while (false !== ($file = readdir($handle))) { 

    Внутри цикла мы можем сделать любое условие для фильтрации списка файлов из папки php? соберем весь код вместе:

    $handle = opendir($dir);

    while (false !== ($file = readdir($handle))) { 

        if ($file != «.» && $file != «..») { 

            echo «$file\n»; 

        } 

    }

    Elitsin-alkash.html

    Gorbachev-prodal-rodinu.txt

    Gorbachev-predatel.html

    Gorbachev-razvalil-SSSR.php

    amerikosyi_kazlyi.txt

    obama_pidurok.html

    Gorbachev-goret-tebe-v-adu.dat

  3. Как из списка файлов сделать список файлов с ссылками на эти файлы!?

    Хотите!? Ну конечно же хотите! В чем смысл.

    Зачем и где это можно применить!?

    Мы немного отвлеклись…

    Возьмем тот, же алгоритм и добавим туда немного кода и получим вот такой вариант:

    В переменной $primer_url — путь до папки…

    В нашем случае:

    $primer_url = «__a-data/Z-arhiv/scandir-ili-sodergimoe-v-papke/1/»;

    Вывод:

    while (false !== ($file = readdir($handle))) { 

        if ($file != «.» && $file != «..») { 

           echo  ‘<a href=»https://dwweb.ru/’.$primer_url.’/’.$file.'» target=»_blank»>’.$file.'</a>’.»\n»; 

        } 

    }

    И см.результат:

    Elitsin-alkash.htmlGorbachev-prodal-rodinu.txtGorbachev-predatel.htmlGorbachev-razvalil-SSSR.phpamerikosyi_kazlyi.txtobama_pidurok.htmlGorbachev-goret-tebe-v-adu.dat

    + можно взять и вывести еще и название страницы, но я уже есть хочу и что-то я запарился эту страницу оформлять…

Вас может еще заинтересовать список тем : #PHP | #PHP_FOLDER | Последняя дата редактирования : 2020-03-09 01:11 https://dwweb.ru/comments_1_5/include/img/hand_no_foto.png no no   BBcode

Файл конфигурации

Файл конфигурации (php.ini) считывается при запуске PHP. Для версий серверных модулей PHP это происходит только один раз при запуске веб-сервера. Для CGI и CLI версий это происходит при каждом вызове.

Поиск php.ini производится в следующих местах (по порядку поиска):

  • По месту расположения модуля SAPI (PHPIniDir директива Apache 2, -c параметр командной строки CGI и CLI, php_ini параметр в NSAPI, PHP_INI_PATH переменная среды в THTTPD)
  • Переменная среды PHPRC. До PHP 5.2.0 поиск по переменной производился после поиска в реестре, указанном ниже.
  • Как и в PHP 5.2.0, местоположение файла php.ini может быть указано для различных версий PHP. Корневой ключ реестра зависит от разрядности операционной системы и установки PHP. Для 32-разрядного PHP на 32-разрядной Windows или 64-разрядного PHP и 64-разрядной Windows используйте . Для 32-разрядного PHP на 64-разрядной Windows . Следующие ключи реестра исследуются при поиске для установок с совпадающей разрядностью: , и , где x, y и z подразумевают major, minor и release версии PHP. Для 32-разрядного PHP на 64-разрядной Windows ключи реестра будут другими: , и . Если также имеется значение IniFilePath в любом из этих ключей, то местонахождение php.ini будет определено первым ключом по порядку (только для Windows).
  • или , значение IniFilePath (только для Windows).
  • Текущая директория (исключая CLI).
  • Директория веб-сервера (для модулей SAPI) или директория PHP (иначе в Windows).
  • В директории Windows (C:\windows или C:\winnt) (для Windows) или —with-config-file-path с выбором при компиляции.

Если файл php-SAPI.ini существует (где SAPI — это тип интерфейса, который используется, например, php-cli.ini или php-apache.ini), то он используется вместо php.ini. Тип интерфейса между веб-сервером и PHP может быть определен с помощью функции php_sapi_name().

В php.ini можно использовать переменные окружения, как показано ниже.

Пример #1 Переменные окружения php.ini

; PHP_MEMORY_LIMIT взята из переменных окружения
memory_limit = ${PHP_MEMORY_LIMIT}

Директивы php.ini, обрабатываемые расширениями, описаны на соответствующих страницах расширений. Список директив ядра имеется в приложении. Не все директивы PHP документированы в этом руководстве: для ознакомления с полным списком директив доступных в вашей версии PHP, прочитайте комментарии вашего php.ini. Кроме того, вы можете найти полезной » последнюю версию php.ini из Git.

Пример #2 Пример php.ini

; любой текст в строке после точки с запятой (;) без кавычек игнорируется
 ; маркеры разделов (текст в квадратных скобках) также игнорируется
; Могут быть установлены следующие логические значения:
;    true, on, yes
; или false, off, no, none
register_globals = off
track_errors = yes

; вы можете заключать строки в двойные кавычки
include_path = ".:/usr/local/lib/php"

; обратный слеш обрабатывается так же, как любые другие символы
include_path = ".;c:\php\lib"

С версии PHP 5.1.0 стало возможным обращаться к существующим ini-переменным из ini-файлов. Пример: open_basedir = ${open_basedir} «:/new/dir».

Сканирование директорий

Существует возможность сконфигурировать PHP для сканирования директорий в поисках .ini-файлов после считывания php.ini. Это можно сделать на моменте компиляции, указав опцию —with-config-file-scan-dir. В PHP 5.2.0 и выше, сканирование директорий может быть переопределено во время исполнения установкой переменной среды PHP_INI_SCAN_DIR.

Можно сканировать несколько директорий, разделяя их разделителем, используемом в вашей операционной системе (; в Windows, NetWare и RISC OS; на всех остальных платформах; в PHP есть константа , которую можно использовать) Если PHP_INI_SCAN_DIR пуста, то PHP также будет сканировать директорию, заданную на этапе компиляции с помощью —with-config-file-scan-dir.

В каждой директории PHP сканирует все файлы заканчивающиеся на .ini в алфавитном порядке. Список всех загруженных файлов в том порядке, в котором они были загружены, доступен с помощью функции php_ini_scanned_files(), либо при запуске PHP с опцией —ini.

5 последних уроков рубрики «PHP»

Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных. Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак

В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода. Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение

В этой статье мы расскажем как улучшили процесс подключение нескольких модулей. Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке. Подборка PHP песочниц Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

Файловая система

Этим пользуются все

Практически на любом устройстве, с которого вы сейчас просматриваете это видео, есть файловая система. Будь то компьютер, лэптоп, планшет, телефон или телевизор.

Рассмотрим более подробно, что она из себя представляет.

Файловая система находится на жестком диске, флешке.

Файловая система позволяет хранить файлы.

Файл – это блок данных, который имеет имя.

Также файловая система позволяет создавать папки, в которые можно помещать другие папки, а также складывать в них файлы.

Чтобы было удобно пользоваться файловой системой, написаны специальные графические программы, которые позволяют наглядно перемещаться из папки в папку и находить нужные файлы на компьютере.

Путь к файлу

Чтобы было удобно пользоваться файловой системой, написаны специальные графические программы, которые позволяют наглядно перемещаться из папки в папку и находить нужные файлы на компьютере.

Например, в Windows стандартной программой для работы с файловой системой является Проводник (Explorer), которым все, безусловно, пользовались.

Однако при изучении HTML важно понимать, как именно устроена файловая система, и как по ней можно перемещаться, обращаясь напрямую к файлу, находясь в любой произвольной папке. В данном видео рассказывается, как вызвать файл file1-2.gif, находящийся в папке folder1 из файла file2-1.html, находящегося в папке folder2

В данном видео рассказывается, как вызвать файл file1-2.gif, находящийся в папке folder1 из файла file2-1.html, находящегося в папке folder2.

Это реальный пример использования знаний о файловой системе, т.к. HTML-документ не всегда лежит в одной и той же папке, где лежат картинки, которые нужно отобразить в этом документе.

Абсолютный путь к файлу

Для того чтобы обратиться к файлу, можно использовать абсолютный путь к нему. То есть, обозначив весь путь от начала, все папки, которые вложены друг в друга и, наконец, имя нужного файла.


В Windows абсолютный путь начинается с названия диска, а разделителем в написании путей служит обратный слэш.

В Unix-системах абсолютный путь начинается с корневой директории файловой системы, а разделителем в написании путей служит прямой слэш.

На слайде показаны абсолютные пути до файлов:

Тут всё просто и понятно: нужно

  • сперва написать имя диска;
  • потом перечислить через слэш все папки, которые лежат по пути к файлу;
  • затем полное имя файла (т.е. само имя файла и его расширение).

Относительный путь к файлу

Теперь рассмотрим, как строится относительный путь к файлу.

Файл file2-1.html находится в папке folder2. Нам нужно для этого файла прописать путь к картинке (файлу file1-2.gif, который находится в соседней папке folder1, лежащей на одном уровне с папкой folder2).

Для того, чтобы подняться из текущей папки (folder2) на один уровень нужно написать . Это поднимет нас на уровень выше, т.е. на уровень диска C:.

Далее ставим слеш и опускаемся в папку folder1. И вот мы уже в папке с нужным файлом!

Далее снова ставим слеш и пишем имя требуемого файла file1-2.gif.

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

Иерархическая структура

Для того, чтобы было нагляднее, файловую систему можно представить в виде иерархического дерева. (Дерево в данном случае перевёрнутое, т.е. «растёт» сверху вниз.)

Корнем (исходной точкой) дерева является верхний уровень. Из корня ответвляются папки, в которые могут быть вложены другие папки, и так далее. В папках могут лежать файлы или другие папки.

Для того, чтобы перейти от одной папки, лежащей на одной ветке, в другую папку, лежащую на другой ветке, нужно дойти по «узловой» папки, из которой «растут» обе ветки и опуститься на уровень нужной папки.

Мы привыкли к тому, что «дерево» повёрнуто набок. Именно так отображаются папки в графических программах для работы с файловой системой.

Структура файловой системы

Надеюсь, что теперь понятно, что в случае, если нужно построить относительный путь для файла, нужно сперва определиться, в каком месте файловой системы мы находимся.

После этого подниматься на нужный уровень с помощью переходов до узла, где ветки сливаются.

А дальше, спускаться по папкам, разделяя их названия слэшом .

Выводы:

слэша точки и слэша

Адрес ссылки может быть как абсолютным, так и относительным. Абсолютные адреса должны начинаться с указания протокола (обычно http://) и содержать имя сайта. Относительные ссылки ведут отсчет от корня сайта или текущего документа.

В примере 8.2 показано создание абсолютной ссылки на другой сайт.

Пример 8.2. Использование абсолютных ссылок

Абсолютный адрес

Изучение HTML

При указании в качестве ссылки каталога сайта (например, http://сайт/css/), отображается индексный файл . Это файл, который загружается по умолчанию при обращении к каталогу без явного указания имени файла. Обычно в качестве индексного файла выступает документ с именем index.html .

Абсолютные ссылки обычно применяются для указания документа на другом сетевом ресурсе, впрочем, допустимо делать абсолютные ссылки и внутри текущего сайта. Однако подобное практикуется нечасто, поскольку такие ссылки достаточно длинные и громоздкие. Поэтому внутри сайта преимущественно используются относительные ссылки.

Ссылки относительно текущего документа

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

1. Файлы располагаются в одной папке (рис. 8.4).

Подобное имя файла взято только для образца, на сайте в именах файлов не следует использовать русские символы с пробелами, да еще и в разном регистре.

2. Файлы размещаются в разных папках (рис. 8.5).

Когда исходный документ хранится в одной папке, а ссылаемый в корне сайта, то перед именем файла в адресе ссылки следует поставить две точки и слэш (/), как показано ниже.

Две точки в данном случае означают выйти из текущей папки на уровень выше.

3. Файлы размещаются в разных папках (рис. 8.6).

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

Ссылка

Аналогично обстоит дело с любым числом вложенных папок.

4. Файлы размещаются в разных папках (рис. 8.7).

Теперь ситуация меняется, исходный файл располагается в корне сайта, а файл, на который необходимо сделать ссылку — в папке. В этом случае путь к файлу будет следующий.

Ссылка

Заметьте, что никаких дополнительных точек и слэшей перед именем папки нет. Если файл находится внутри не одной, а двух папок, то путь к нему записывается так.

Ссылка

Ссылки относительно корня сайта

Иногда можно встретить путь к файлу относительно корня сайта, он выглядит как «/Папка/Имя файла» со слэшем вначале. Так, запись Курсы означает, что ссылка ведет в папку с именем course, которая располагается в корне сайта, а в ней необходимо загрузить индексный файл.

Учтите, что такая форма записи не работает на локальном компьютере, а только под управлением веб-сервера.

В данном уроке мы объясним новичкам, что такое абсолютный и относительный путь к файлу, а также в каком случае какой из них лучше использовать. Если вы уже знакомы с данной темой, вы можете переходить к следующему уроку.

Итак, начнем с определения самого термина «путь»:

Если говорить о сайтах, то путь — это то же, что и ссылка. Ссылки могут быть абсолютными и относительными. Рассмотрим оба варианта более подробно.


С этим читают