каталог — PHP иногда относительные ссылки работают, а иногда нет?

Итак, это моя структура проекта (упрощенно):

+blog
-index.php //Index 2
+ views
-index.php // Index 3
-article.php
-index.php // Index 1
+partials
-constants.php
-top.php

Хорошо, так в Индекс 1 а также Индекс 2 Я использую эту строку кода, чтобы включить некоторые частичные / фрагменты:

Индекс 1:

<?php require_once("./partials/constants.php"); ?>
<?php require_once("./partials/top.php"); ?>

Индекс 2:

<?php require_once("../partials/constants.php"); ?>
<?php require_once("../partials/top.php"); ?>

но в Индекс 3 если я использую это:

<?php require_once(".../partials/constants.php"); ?>
<?php require_once(".../partials/top.php"); ?>

Я получаю эту ошибку:

<body><br>
<b>Warning</b>:  require_once(.../partials/constants.php): failed to open stream: No such file or directory in <b>/home/codio/workspace/blog/views/index.php</b> on line <b>1</b><br>
<br>
<b>Fatal error</b>:  require_once(): Failed opening required '.../partials/constants.php' (include_path='.:/home/codio/.parts/packages/php5-apache2/5.5.15/lib/php') in <b>/home/codio/workspace/blog/views/index.php</b> on line <b>1</b><br>
</body>

0

Решение

Эти точки перед путем к файлу не означают уровень каталога.

./ ссылаться на тот же каталог, что и вы

../ уровень выше.

Тем не менее, вы должны быть запущены ../../partials/constants.php на index3

Для index2, так как это уровень выше index3, вам нужно изменить оператор require на ../partials/constants.php

И для индекса, так как он находится на том же уровне каталога partials ты бы побежал require ('partials/constants.php');

2

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

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

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