Назад | Перейти на главную страницу

Путь к виртуальному каталогу в файлах HTML

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

На главном сервере это работает:

<link href="/styles/styles.css" rel="stylesheet" type="text/css">

На сервере разработки тот же путь должен быть записан как (без первой косой черты):

<link href="styles/styles.css" rel="stylesheet" type="text/css">

Как я могу заставить dev-сервер работать с файлами основных серверов, не переписывая пути? Могу ли я сделать это из .htaccess с помощью перезаписи мода?

Во-первых, немного истории о том, как работают пути. Абсолютные пути основаны на корень сервера. Относительные пути основаны на URL-адресе (а не пути к файлу) текущей страницы. Однако это поведение НЕ обрабатывается сервером - его обрабатывает клиент, и это поведение универсально (да, даже IE6 ... Я знаю, сюрприз!). Единственное, что может привести к тому, что эти два пути НЕ будут одинаковыми, - это если они не будут относиться к корню веб-сайта.

Например, если мы пытаемся получить доступ к указанному выше URL (/styles/styles.css), вот как они будут вести себя в следующих двух примерах:

Веб-сайт «Главный Сервер» размещен на http: //mainwebsite/index.html

styles/styles.css  => http://mainwebsite/styles/styles.css
/styles/styles.css => http://mainwebsite/styles/styles.css

Веб-сайт "Dev Server", размещенный на http: //devsite/some_sub_dir/index.html

styles/styles.css  => http://devsite/some_sub_dir/styles/styles.css
/styles/styles.css => http://devsite/styles/styles.css

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

Удачи!

Андрей