Я только начинаю изучать веб-разработчика, но немного запутался, когда настраивал свою локальную среду разработки.
У меня был сайт php на общем хостинге в течение некоторого времени. Я бы отредактировал локальные файлы и загрузил их, а затем обновил, чтобы убедиться, что все работает. Непослушная практика, которую я знаю!
Итак, я попытался настроить локальную среду разработки и установил AMPPS для локального веб-сервера (PHP5).
Я амбициозно настроил структуру папок ниже, чтобы я мог кодировать целый ряд веб-сайтов, чтобы опробовать различные языки и структуры, сохраняя их все отдельно. (квадратные скобки обозначают папки) . Обратите внимание, если это правильный подход ... (?)
-->[PHP]
---> [AMPPS]
----> [www]
-----> [PROJECTS]
------> [project_name]
-------> index.php
-------> .htaccess
-------> [images]
-------> [section1]
--------> page1.php
-------> [etc...]
------> [project_name]
------> [project_name]
--> [RUBY]
--> [PYTHON]
Мое первое препятствие, однако, заключается в том, что все мои ссылки были относительными, и я, конечно, загрузил свой сайт в root с моего хоста. Root в моем локальном окружении теперь www
, что, как вы можете видеть, находится в нескольких папках от того места, где я установил свой сайт.
Ссылки (например, <a href="/section1/page1.php">Page 1</a>
) теперь отображаются как: "localhost/section1/page1.php"
, когда я считаю, что на самом деле они должны отображаться как "localhost/PROJECTS/project_name/section1/page1.php"
.
Я не думаю, что указание APACHE, что моим корневым каталогом является [имя_проекта], является правильным подходом, потому что тогда он не будет работать для других проектов, которые я создаю. Я предполагаю, что мне нужно что-то делать для каждого отдельного проекта, чтобы указать собственный корневой каталог.
Я подумал, что могу указать root, добавив файл .htaccess
в папку project_name
:
Из моих онлайн-исследований я подумал, что это будет что-то вроде:
RewriteEngine on
RewriteRule ^/$ /PROJECTS/project_name/
или, возможно
RewriteEngine on
RewriteRule ^/$ .;C/PHP/AMPSS/www/PROJECTS/project_name/
Однако я не могу заставить их работать.
Когда сайт был в сети, я также кодировал <?php set_include_path($_SERVER['DOCUMENT_ROOT']); //Look for includes starting from ROOT location ?>
вверху каждой страницы, думая, что поступаю правильно.
Теперь я не уверен, что правильно понял, что я там делал. Похоже, что это не влияет на мою среду разработки или без нее. И я так и не смог отредактировать его, чтобы решить проблему с относительными ссылками.
Извините за длинный пост.
Я благодарен за любые отзывы и помощь. Заранее спасибо:)
[Решено] - Советы ниже были идеальными. Спасибо вам всем. :)
Подсказка для пользователей Chrome:
Если вы используете собственный домен, как я сделал с .dev, либо добавьте адрес http://
, либо завершите его завершающим /
.
Например, теперь я захожу на свой сайт разработчиков в Chrome, посещая projectname.dev/ (без последнего / пытается выполнить поиск).
Сначала я подумал, что неправильно настроил VirtualHost или хосты, хотя на самом деле именно это поведение Chrome скрывало проблему. На момент написания этой статьи другие браузеры, такие как Firefox, не разделяли эту озабоченность.
Надеюсь, что это поможет кому-то еще.