Я попытался создать сервер разработки, скопировав веб-сайт с одного хоста на другой, но серверы, похоже, по-разному обрабатывают виртуальные пути.
На главном сервере это работает:
<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
Если вы поясните свой ответ (эти серверы явно не размещают одни и те же данные одинаково), я мог бы дать более точное описание. Однако, если бы мне пришлось угадывать, я бы сказал, что вы, вероятно, столкнулись с описанной мной проблемой.
Удачи!
Андрей