D'accord - je sais que c'est un problème vraiment élémentaire, mais je ne peux pas le comprendre. C'est une question concernant Laravel.
Fondamentalement, mes feuilles de style sont intégrées dans ma vue de mise en page par défaut. J'utilise actuellement juste le CSS standard pour les lier, tels que:
<link rel="stylesheet" href="css/app.css" />
Cela fonctionne très bien lorsque je suis sur une route à un niveau tel que / about , mais cesse de fonctionner lorsque je vais plus loin, comme / about / me .
Si je regarde la console développeur de Chrome, je vois certaines des erreurs suivantes (uniquement pour les itinéraires plus profonds):
Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://example.dev/about/css/app.css".
Il est donc clair qu'il recherche maintenant le css dans le dossier "about" - qui n'est bien sûr pas du tout un dossier.
Je veux juste qu'il recherche au même endroit les actifs, quel que soit l'itinéraire.
asset()
méthode d'assistance instantanée deURL::asset()
. Il fait le même travail.Laravel 4
La meilleure et correcte façon de faire cela
Ajout de CSS
HTML :: style sera lié à votre projet / public / dossier
Ajout de JS
HTML :: script établira un lien vers votre projet / public / dossier
la source
Vous utilisez des chemins relatifs pour vos actifs, passez à un chemin absolu et tout fonctionnera (ajoutez une barre oblique avant "css".
la source
dans Laravel 5 ,
il existe 2 façons de charger un fichier js dans votre vue: la
première consiste à utiliser l'aide html, la seconde à utiliser les assistants d'actifs.
pour utiliser l'aide html, vous devez d'abord installer ce package via la ligne de commande:
alors vous devez le réinscrire, alors allez dans config / app.php, et ajoutez cette ligne au tableau des fournisseurs
alors vous devez définir des alias pour votre package html, alors allez dans le tableau d'alias dans config / app.php et ajoutez ceci
maintenant votre assistant html est installé, donc dans vos fichiers de vue en lame, vous pouvez écrire ceci:
cela recherchera votre fichier test.js dans votre racine_projet / public / js / test.js.
//////////////////////////////////////////////////// ////////////
pour utiliser des assistants d'actifs au lieu de l'aide html, vous devez écrire qc comme ceci dans vos fichiers de vue:
cela cherchera le fichier test.js dans project_root / resources / assets / test.js
la source
<script src="{{ url(asset('test.js')) }}"></script>
(ou<script src="{{ url(mix('test.js')) }}"></script>
si vous utilisez Laravel Mix).Si vous utilisez Laravel 3 et vos fichiers CSS / JS dans un dossier public comme celui-ci
alors vous pouvez les appeler en utilisant des modèles Blade comme celui-ci
la source
je vous suggère de le mettre sur le filtre de route avant sur {project} /application/routes.php
et en utilisant le moteur de gabarit de lame
ou plus sur laravel gestion des documents sur les actifs
la source
en
laravel 4
vous avez juste à coller de{{ URL::asset('/') }}
cette façon:Il en va de même pour:
la source
Laravel 5.4 avec mix helper:
la source
Dans Laravel 5.7, placez votre fichier CSS ou JS dans le répertoire public.
Pour CSS:
Pour JS:
la source
Le meilleur moyen à mon avis d'ajouter la balise BASE dans votre HTML
Il n'est donc pas nécessaire d'utiliser des choses comme
tapez simplement
à votre avis et cela fonctionnera.
Cette méthode traitera les URL RESTful et les ressources statiques sous forme d'images, css, scripts.
la source
Vinsa avait presque raison, tu devrais ajouter
et les scripts doivent suivre leur chemin normal
la raison en est que les images et autres choses avec un chemin relatif comme la source d'image ou les requêtes ajax ne fonctionneront pas correctement sans le chemin de base attaché.
la source
Si vous le codez en dur, vous devriez probablement utiliser le chemin complet (
href="http://example.com/public/css/app.css"
). Cependant, cela signifie que vous devrez ajuster manuellement les URL pour le développement et la production.Une alternative aux solutions ci-dessus serait d'utiliser
<link rel="stylesheet" href="URL::to_asset('css/app.css')" />
dans Laravel 3 ou<link rel="stylesheet" href="URL::asset('css/app.css')" />
dans Laravel 4. Cela vous permettra d'écrire votre HTML comme vous le souhaitez, mais aussi de laisser Laravel générer le chemin approprié pour vous dans n'importe quel environnement.la source
Meilleure façon d'utiliser comme,
la source
Supposons que vous n'ayez pas renommé votre dossier public. Vos fichiers css et js se trouvent dans les sous-dossiers css et js du dossier public. Maintenant, votre en-tête sera:
la source
Ajoutez simplement un autre problème:
Si vous souhaitez supprimer
/public
de votre projet en utilisant.htaccess
,alors vous pouvez utiliser ceci, [Add
public
before/css
insideasset()
][Parfois, c'est utile.]
la source
Pour Laravel 4: {!! pour une double accolade {{
et pour la version Laravel 5 et plus: vous pouvez remplacer {!! par {{et !!} par}} en version haut de gamme
Si vous avez placé JavaScript dans un répertoire personnalisé.
Par exemple, si votre
jQuery-2.2.0.min.js
est placé sous le répertoire, àresources/views/admin/plugins/js/
partir du,*.blade.php
vous pourrez ajouter à la fin de la section commeDepuis la version haut de gamme prend également en charge la version bas de gamme et mais pas vice-versa
la source
La meilleure et correcte façon de faire ceci:
la source
Dans Laravel 5.8
vient de faire le truc pour moi.
la source
placez votre fichier de script dans le répertoire public puis utilisez (par exemple pour userFunctions.js)
la source