Lorsqu'on travaille avec un cadre d'application MVC, il n'est pas possible d'utiliser des adresses relatives pour accéder à différentes ressources : pages Web, images, fichiers CSS, fichiers JavaScript, etc.
En effet, la page d'accueil est généralement située au moins un dossier virtuel plus bas que les autres pages (ex : https://mondomaine.com pour l'accueil et https://mondomaine.com/produits pour la liste des produits).
Il faut donc utiliser des fonctions d'aide (en anglais : helper functions) pour y parvenir.
La fonction d'aide asset() permet de générer un URL menant vers une image, une feuille de style ou un script. On devra spécifier le chemin relatif à partir de la racine du site Web (dossier public).
La fonction retournera l'URL absolu du fichier, incluant le nom de domaine.
asset('cheminRelatif/fichier');
Ex :
<img src="{{ asset('medias/fr/Logo.png') }}" alt="Mon entreprise">
Ici, la source de l'image sera https://mondomaine.com/medias/fr/Logo.png, ce qui correspond au fichier C:\Users\monnom\Documents\CodeLaravel\monprojet\public\medias\fr\Logo.png.
Si vous travaillez avec Laravel Mix pour effectuer différentes tâches, dont la compilation et la concaténation de fichiers CSS et JavaScript, vous avez l'opportunité de demander à Laravel Mix d'ajouter aux fichiers une chaîne aléatoire afin de forcer le rafraîchissement du cache du navigateur lorsqu'un fichier est changé.
Par exemple, vous pouvez concaténer toutes les feuilles de style en un seul fichier qui sera placé à cet endroit : public\css\all.697dc39aa8ab2343fa74e2e14e48fdde.css.
La fonction d'aide mix() permet de charger le bon fichier sans avoir à se soucier de cette chaîne. Le chemin à fournir doit être relatif à la racine du site Web (dossier public). Sa valeur de retour est un URL relatif.
mix('/cheminRelatif/fichier');
Ex :
<link rel="stylesheet" href="{{ mix('/css/all.css') }}">
Ceci générera une balise du genre <link rel="stylesheet" href="/css/all.697dc39aa8ab2343fa74e2e14e48fdde.css">. Le numéro séquentiel sera assurément différent de celui présenté ici. De plus, il changera quand le fichier css sera regénéré.
Si vous avez besoin d'un URL absolu, il est possible de combiner la fonction d'aide mix() avec la fonction d'aide asset().
Ex :
<link rel="stylesheet" href="{{ asset(mix('css/all.css')) }}">
Cette fois, la balise générée ira comme suit : <link rel="stylesheet" href="https://mondomaine.com/css/all.697dc39aa8ab2343fa74e2e14e48fdde.css">
Avant Laravel 5.4, les différents tâches sur les fichier JavaScripts, feuilles de styles, images, etc. était effectuée avec Laravel Elixir.
Si vous travaillez avec une ancienne version de Laravel, la fonction d'aide elixir() permet de charger le bon fichier sans avoir à se soucier de cette chaîne. Le chemin à fournir doit être relatif au dossier public\build.
elixir('cheminRelatif/fichier');
Ex :
<link rel="stylesheet" href="{{ elixir('css/all.css') }}">
« Helper Functions - action() ». Laravel. https://laravel.com/docs/master/helpers#method-action
« Helper Functions - route() ». Laravel. https://laravel.com/docs/master/helpers#method-route
« Helper functions - asset() ». Laravel. https://laravel.com/docs/master/helpers#method-asset
« Get Current URL in a Blade View ». Easy Laravel. http://easylaravel.com/check-current-url
▼Publicité