Относительный путь — работа с файлами, удаленными на много каталогов

#javascript #path

#javascript #путь

Вопрос:

Прошло довольно много времени с тех пор, как я занимался интерфейсной разработкой, и у меня возникли некоторые проблемы… Мой текущий файл находится в этом месте на моем сервере:

 /home/www/mysite/sites/all/custom_includes/roster/user_roster.php
  

У меня есть файл js, расположенный по адресу:

 /home/www/lib/jquery/jquery.fancybox.js
  

Если бы это был php-файл, который я пытался включить, я мог бы сделать что-то вроде этого:

 $jsPath = '/home/www/lib/jquery';
require_once($jsPath.'/jquery.fancybox.js');
  

Но, похоже, это не работает с тегом script. Я попробовал это так:

 <script type="text/javascript" src="<?= $jsPath; ?>/jquery.fancybox.js"></script>
  

но он оценивается как

 <script type="text/javascript" src="/home/www/lib/jquery/jquery.fancybox-1.3.4.pack.js"></script>
  

что выдает мне ошибку «Страница не найдена». Я застрял, используя 10000 уровней .. / в моем скрипте src path для получения файла? Или есть лучший способ?

Ответ №1:

При работе с js вам нужно подумать об этом с точки зрения клиента.

Ваш путь должен быть: /lib/jquery/jquery.fancybox-1.3.4.pack.js

Пути клиента относятся к корню вашего веб-сервера, в данном случае к /home / www Также помните, что вы не можете получить доступ к файлам на более высоком уровне, чем / home / www от клиента, не пройдя через серверный скрипт.

Комментарии:

1. Я тоже пробовал это. Это все еще выдает мне ошибку «файл не найден».

2. Попробуйте просмотреть файл непосредственно из своего браузера и убедитесь, что он правильный.

3. Это все еще выдает мне ошибку «файл не найден». Но когда я помещаю файл php в этот каталог и использую require_once, он находит его без проблем, поэтому я знаю, что путь правильный.

4. Пути PHP и пути веб-сервера совершенно разные. Например: domain.com/example.js не указывает на /example.js он будет указывать на /home/www/example.js (Предполагается, что /home / www / является корневым каталогом вашего веб-сервера)