Я делаю небольшой интранет-сайт для своего работодателя. На данный момент я единственный разработчик. (Горе им.) Я до сих пор очень неравнодушен к веб-разработке.
Я использую версию этого сайта с 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. Этот вопросответ несколько говорит на мой вопрос, но мне интересно, может ли кто-нибудь объяснить дальнейшую косую черту.
Задача ещё не решена.
Других решений пока нет …