Корень / файловая структура сервера в переполнении стека

Я делаю небольшой интранет-сайт для своего работодателя. На данный момент я единственный разработчик. (Горе им.) Я до сих пор очень неравнодушен к веб-разработке.

Я использую версию этого сайта с NetBeans в качестве «сервера» (в конечном счете, с помощью EasyPHP). Когда я запускаю проект в NetBeans, браузер имеет корень сайта как «localhost: 8000» или любой другой порт. Ничего плохого там нет. Когда я пытаюсь запустить его непосредственно через EasyPHP, он имеет «псевдонимы», которые указывают на указанные каталоги на моем жестком диске в качестве корня сайта, поэтому браузер говорит что-то вроде «127.0.0.1/Intranet/» в качестве корня сайта. К сожалению, это ломает все во многих отношениях. Например, как я получал рут сайта:

 define('WEB_ROOT', filter_input(INPUT_SERVER, 'DOCUMENT_ROOT');
define('SOURCE_ROOT', dirname(WEB_ROOT);

WEB_ROOT в конечном итоге указывал на каталог, в котором установлен EasyPHP, а не на каталог, в котором находится сайт, поэтому, естественно, любые WEB_ROOT в них сломалось. Вместо этого был еще один ключ $ _SERVER 'CONTEXT_DOCUMENT_ROOT' это указывает на правильное место. ОК, достаточно легко проверить, что ключ isset() и использовать его, если это так, но тогда ссылки на мои файлы CSS и JavaScript были сломаны, потому что они были связаны в моем коде, как /js.js с ведущей косой чертой. Я думал, что ведущий / будет автоматически указывать на корень сайта, но вместо этого он, похоже, указывает на корень в браузере, поскольку консоль заявила, что не может найти «127.0.0.1/js.js», когда она должна была искать «127.0.0.1». /Intranet/js.js».

Есть ли в этом смысл? Что на самом деле делает ведущий слеш? Должен ли я вместо этого связать мои css и js с моими константами WEB_ROOT? Я не хочу делать это с относительными путями, потому что (на данный момент) на этом сайте много каталогов и подкаталогов, для любого из которых нужно найти WEB_ROOT / js.js или style.css.

Хотя версия prod работает (на другом компьютере с другим серверным программным обеспечением), эти ошибки заставляют меня думать, что я делаю что-то не так. Какие-нибудь мысли?

Спасибо!

PS. Этот вопросответ несколько говорит на мой вопрос, но мне интересно, может ли кто-нибудь объяснить дальнейшую косую черту.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]