Как создать ссылку на файлы, используя относительный путь?
Мой сайт находится в папке sites/sandbox
. Когда я загружу на живой сервер, это изменится на sites/mysite
В настройках файловой системы путь к общедоступной файловой системе установлен в sites/sandbox/files
. Когда сайт заработает, я планирую изменить это на sites/mysite/files
Модуль файлов включен, и я загружаю PDF-файлы. При вводе контента, как я могу ссылаться на загруженный файл, используя относительный путь, который не будет нарушен, когда сайт заработает?
Или, возможно, имя каталога сайта ("песочница") должно никогда не изменится?
4 answers
Модуль Патологический исправит все это для вас автоматически, когда вы переместите его
Патологический - это входной фильтр, который может корректировать пути в ссылках и изображениях в вашем контенте Drupal в ситуациях, которые в противном случае привели бы к их "разрыву"; например, если URL-адрес сайта изменился или контент был перемещен на другой сервер. Патологический также может решить проблему отсутствия изображений и неработающих ссылок в RSS-каналах вашего сайта. См. дополнительные примеры использования на странице документации.
Вы пробовали file_create_url()?
$file_uri = file_create_url(file_build_uri('images/example.jpeg'));
Приведенный выше фрагмент даст URL-адрес файла. Кроме того, я рекомендую модуль транслитерации для сайтов, которые занимаются загрузкой файлов.
Используйте base_path()
(функция) ИЛИ $base_path (глобальная переменная), что приведет к /sites/mysites
ИЛИ /sites/sandbox
для ваших сайтов. Всегда используйте его в темах и везде. Это позволит вам легко синхронизировать оба сайта с любым редактированием.
Ссылки могут быть созданы
l('Link Title', base_path() . "/files/filename.ext");
ИЛИ
global $base_path;
l('Link Title', $base_path . "/files/filename.ext");
Модуль LinkIt представляет собой довольно комплексное решение для вставки ссылок в поля и wysiwygs в действительно любом выбранном вами формате. Я использую файловую сущность и носитель, а интеграция LinkIt с WYSIWYG позволяет мне вставлять ссылки на файлы так, как мне хотелось бы, включая прямые ссылки на файл для желаемого поведения "открыть в браузере". В нем также есть отличная функция автозаполнения поиска для поиска узлов или файлов. Жаль, что я не нашел его раньше.