2014-07-17 5 views
11

Ho installato Laravel e ho iniziato a provare a scrivere un'app. Ho creato alcune directory per le mie risorse nella stessa directory di/app. Ma quando ho provato a visitare un'immagine nel mio localhost per esempio: http://localhost/assets/images/image.pngLaravel assets url

Ho anche provato su: http://localhost/app/assets/images/image.png

mi sono imbattuto nel problema quando stavo cercando di impostare un'immagine di sfondo in una vista, ed è continuato ad andare a 404.

Questo è ciò che la mia app assomiglia sotto app/

->app 
->assets 
->commands 
->config 
->controllers 
->database 
->lang 
->models 
->start 
->storage 
->tests 
->views 
app.txt 
routes.php 
filters.php 

Ma io ottenere gli errori circa le richieste. Ho ricontrollato che l'URL sia corretto.

Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException 
+3

Le risorse (e qualsiasi altra cosa che deve essere colpita direttamente da un browser) devono essere inserite nella directory pubblica/poiché questa dovrebbe essere la radice del documento. L'app/cartella non dovrebbe essere accessibile a un browser. – judereid

risposta

19

devi mettere tutte le risorse nella cartella app/public, e di accedervi da vostro punto di vista è possibile utilizzare asset() metodo di supporto.

Es. è possibile recuperare assets/images/image.png nella vista come segue:

<img src="{{asset('assets/images/image.png')}}">

+0

La sintassi {{asset()}} non funziona affatto nel mio caso. Sto usando background: url ('{{asset (' assets/images/image.png ')}}') Questo non funziona affatto lol. Errori di sintassi php. Non sono sicuro del perché continui a vedere la sintassi quando restituisce sempre errori in ogni contesto – vikingcode

+2

Non è "url" ('{{asset (' assets/images/image.png ')}}) '!!, parentesi graffe' {{' ' una stringa '}} 'significa' 'nel motore di template blade, e non devi chiamare la funzione' url', la funzione 'asset' restituirà un url valido alla tua immagine, per favore prova il codice esatto nel mio post qui sopra senza aggiungere nulla. –

+0

e non dimenticare di mettere tutte le risorse nella cartella 'app/public/assets'. –

2

Oltre a mettere tutte le risorse nella cartella pubblica, è possibile utilizzare il metodo HTML::image(), e necessita solo di un argomento che è il percorso dell'immagine , relativa alla cartella pubblica, come pure:

{{ HTML::image('imgs/picture.jpg') }} 

che genera il codice HTML seguito:

<img src="http://localhost:8000/imgs/picture.jpg"> 

Il collegamento con altri elementi di HTML::image() Metodo: http://laravel-recipes.com/recipes/185/generating-an-html-image-element

0

quello che dovete fare due passi:

  1. mettere tutti i vostri file (css, js, il codice HTML, ecc) nella cartella pubblica.
  2. Utilizzare url({{ URL::asset('images/slides/2.jpg') }}) dove images/slides/2.jpg è il percorso del contenuto.

Allo stesso modo è possibile chiamare js, css ecc

-2
img src="{{URL::asset('img/img12.jpg')}}" 

Asset è predefinito qui in modo da non farla patrimonio. Basta usare questo :)