105 votes

Les feuilles de style et le javascript de Laravel ne se chargent pas pour les routes non basiques

Bon, je sais que c'est une question très élémentaire, mais je n'arrive pas à la résoudre. Il s'agit d'une question concernant Laravel.

En fait, mes feuilles de style sont intégrées dans ma vue de mise en page par défaut. Actuellement, je n'utilise que du css normal pour les lier, par exemple :

<link rel="stylesheet" href="css/app.css" />

Cela fonctionne très bien lorsque je me trouve sur une route à un seul niveau, par exemple /à propos mais ne fonctionne plus lorsque je vais plus loin, comme par exemple /A propos de moi .

Si je regarde la console du développeur de Chrome, je vois certaines des erreurs suivantes (uniquement pour les routes les plus profondes) :

Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://example.dev/about/css/app.css".

Il est donc clair qu'il cherche maintenant les css dans le dossier "about" - qui, bien sûr, n'est pas un dossier du tout.

Je veux juste qu'il se trouve au même endroit pour les actifs, quelle que soit la route.

2voto

Cptmaxon Points 395

Vinsa avait presque raison vous devriez ajouter

<base href="{{URL::asset('/')}}" target="_top">

et scripts devraient aller dans leur chemin habituel

<script src="js/jquery/jquery-1.11.1.min.js"></script>

La raison en est que les images et autres choses avec un chemin relatif comme la source de l'image ou les requêtes ajax ne fonctionneront pas correctement sans le chemin de base attaché.

1voto

mckendricks Points 296

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 URLs 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 d'accès approprié pour vous dans n'importe quel environnement.

1voto

BIBIN K ONANKUNJU Points 5207

Une meilleure façon d'utiliser "like",

<link rel="stylesheet" href="{{asset('assets/libraries/css/app.css')}}">

1voto

Hafsul Maru Points 379

Supposons que vous n'ayez pas renommé votre dossier public. Vos fichiers css et js sont dans les sous-dossiers css et js du dossier public. Maintenant, votre en-tête sera :

<link rel="stylesheet" type="text/css" href="http://stackoverflow.com/public/css/icon.css"/>
<script type="text/javascript" src="/public/js/jquery.easyui.min.js"></script>

1voto

Maniruzzaman Akash Points 1392

Ajoutez juste un autre problème :

Si vous voulez supprimer /public de votre projet en utilisant .htaccess ,

alors vous pouvez utiliser ceci, [Ajouter public avant /css à l'intérieur de asset() ]

<link href="{{ asset('public/css/app.css') }}" rel="stylesheet">

(Parfois, c'est utile.)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X