web-dev-qa-db-fra.com

Comment créer un lien vers des fichiers en utilisant un chemin relatif?

Mon site est en sites/sandbox dossier. Lorsque je télécharge sur un serveur en direct, cela se transforme en sites/mysite

Dans les paramètres du système de fichiers, le chemin du système de fichiers public est défini sur sites/sandbox/files. Lorsque le site sera mis en ligne, je prévois de changer cela en sites/mysite/files

Le module de fichiers est activé et je télécharge des fichiers PDF. Lors de la saisie du contenu, comment puis-je créer un lien vers un fichier téléchargé en utilisant un chemin relatif qui ne se cassera pas lorsque le site sera en ligne?

Ou peut-être que le nom du répertoire du site ("bac à sable") ne devrait jamais être changé?

4
pushka

Le module Pathologic corrigera tout cela automatiquement pour vous lorsque vous le déplacerez

Pathologic est un filtre d'entrée qui peut corriger les chemins dans les liens et les images de votre contenu Drupal dans des situations qui autrement les feraient "casser;" par exemple, si le L'URL du site change ou le contenu a été déplacé vers un autre serveur. Pathologic peut également résoudre le problème des images manquantes et des liens rompus dans les flux RSS de votre site. Voir plus d'exemples d'utilisation sur la page de documentation .

3
user842

Avez-vous essayé file_create_url ()?

$file_uri = file_create_url(file_build_uri('images/example.jpeg'));

L'extrait ci-dessus donnera l'URL du fichier. En outre, je recommande translittération module pour les sites qui traitent des téléchargements de fichiers.

4
Sivaji

Utilisez base_path() (fonction) OR $ base_path (var globale) qui entraînera /sites/mysites OR /sites/sandbox pour vos sites. Utilisez-le toujours dans les thèmes et partout. Cela vous permettra de synchroniser facilement les deux sites avec n'importe quelle modification.

Des liens peuvent être produits

l('Link Title', base_path() . "/files/filename.ext");

OR

global $base_path;
l('Link Title', $base_path . "/files/filename.ext");
1
Shoaib Nawaz

Le module LinkIt est une solution assez complète pour insérer des liens dans des champs et des wysiwygs dans n'importe quel format que vous choisissez. J'utilise File Entity and Media et l'utilisation de l'intégration LinkIt WYSIWYG me permet d'insérer des liens vers des fichiers comme je le souhaite, y compris des liens directs vers le fichier pour le comportement souhaité "ouvrir dans le navigateur". Il dispose également d'une excellente fonction de recherche de saisie semi-automatique pour trouver des nœuds ou des fichiers. J'aurais aimé l'avoir trouvé plus tôt.

0
cdmo