2016-10-06 1 views
2

J'ai récemment effectué une nouvelle installation du framework Lumen et commencé à en construire un site. Oui, je sais que lumen est conçu uniquement pour les API, mais s'il vous plaît aidez-moi avec cela.La fonction url() de Lumen fonctionne bizarrement

Je l'ai placé mes vues à l'intérieur /ressources/vues et mes modèles à l'intérieur /ressources/vues/modèles.

Maintenant que je devais placer [css/js/images] quelque part, je pensais placer tout cela dans publics/assets/[/ js/css images] serait bien.

Maintenant dans ma mise en page quand je suis en train d'inclure css - j'utiliser quelque chose comme ça -

<link href="{{ url('assets/css/something.css') }}"> 

et il fonctionne en donnant une sortie de quelque chose comme ça -

<link href="localhost/assets/css/something.css"> 

mêmes oeuvres chose pour js aussi mais ça devient étrange quand j'essaye d'inclure des images. Pour y compris une image que j'écris quelque chose comme -

<img src ="{{ url('assets/images/someimage.jpg') }}" 

et quand je considère la source de la page, la sortie est que je pense que ce soit -

<img src="localhost/assets/images/someimage.jpg"> 

mais ma console feux 404 erreurs non trouvées indiquant someimage. jpg pas trouvé. Et quand je crossCheck en inspectant le parent de l'image, l'URL est totalement différent soemthing comme celui-ci -

<img src="localhost/images/someimage.jpg"> 

Voir, en omettant automatiquement « actifs » d'URL de l'image et résultant en 404, mais je peux voir URL correcte quand je visionne source de la page.

choses que j'essayé de résoudre le problème -

  1. cache Effacé et rechargées la page.

  2. Essayé en utilisant asset() au lieu de url() mais le prototype de celui-ci a été retiré de la lumière.

  3. Extrayez le dossier [css/js/images] des actifs et collez-les dans le parent, c'est-à-dire public. Cela a fonctionné, mais la question est de savoir pourquoi la configuration précédente a-t-elle fonctionné à la fois pour css et js et n'a causé problème qu'avec les images?

Mes autres questions sont -

1. Comment peut-être différent de celui qui est rendu l'URL dans la source de la page? Juste pour mentionner dans mon cas l'url dans la source de page a fonctionné et a montré l'image mais puisque l'URL étant rendu omis 'assets' du chemin a résulté en 404.

2. Y at-il un autre bon moyen d'inclure ces capitaux dans les vues. Si oui, veuillez également indiquer où les mettre?

Joindre quelques images/code pour référence.

Output of rendered page showing 404 errors for images but none for css.

Output of view page source windows showing asset included in image path

Répondre

1

Aucune idée si cela est juste, mais je crois que vous avez réellement besoin de mettre un flux d'images dans cette URL. Maintenant, le serveur essaie de récupérer un objet codé en octets qui n'existe pas.

je ne sais pas si c'est le même cas pour vous, mais j'ai eu de nombreux cas où je devais mettre en images les cours d'eau au lieu d'URL, que je l'ai résolu en utilisant cette façon this library:

routes.php

/** 
* Image handling routes. 
* These make sure images actually are images instead of bytecode 
*/ 
Route::get('organization/logo/{logo}', function($logo) { 
    $file = Image::make(Storage::disk('logo-image')->get($logo)); 
    return $file->response(); 
}); 

Voir

<img src="{{ asset('organization/logo/' . $organization->logo_path) }}" alt=""> 

I MIGH t être complètement éteint, mais je reconnais ce qui se passe avec votre application et cela a pris soin des problèmes lorsque je l'ai mis en œuvre.

+0

Hey !! Merci d'avoir répondu, j'essaierais certainement de répondre. Mais pour l'instant pouvez-vous s'il vous plaît me lier à toute ressource où je peux trouver plus d'informations concernant la solution que vous avez donnée? –

+0

J'ai trouvé cela très utile: https://m.reddit.com/r/laravel/comments/3f9257/psa_uploading_interventionimages_using_storageput/ et sinon les docs d'Intervention Image sont assez clairs – Loek

0

Vérifiez la configuration de votre serveur Web. Il semble que vous ayez un certain type de configuration de redirection qui redirige assets/images/* vers images/*.

Comme un test simple, ouvrez votre onglet "Réseau" et naviguez votre navigateur à http://samplelumena.local/assets/images/footer1.jpg. Je devine que la trace de réseau montrera un 30x (301, 302, etc.) à http://samplelumena.local/images/footer1.jpg, suivi par le 404 pour cette URL.