2014-07-17 13 views
11

Zainstalowałem Laravel i zacząłem pisać aplikację. Zrobiłem katalogi dla moich zasobów w tym samym katalogu co/app. Ale gdy próbuję odwiedzić obraz w moim localhost na przykład: http://localhost/assets/images/image.pngLaravel assets url

Ja również próbowałem go na: http://localhost/app/assets/images/image.png

wpadłem na problem, kiedy próbuje ustawić obraz tła w widoku, i ruszyłem do 404.

to właśnie moja aplikacja wygląda pod app/

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

Ale pojawiają się błędy dotyczące wniosków. Sprawdziłem dwukrotnie, czy adres URL jest poprawny.

Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException 
+3

Twoje zasoby (i wszystko inne, co musi zostać trafione bezpośrednio przez przeglądarkę) muszą zostać umieszczone w katalogu publicznym /, ponieważ powinien to być główny dokument. Aplikacja/folder nie powinien być dostępny dla przeglądarki. – judereid

Odpowiedz

19

Musisz umieścić wszystkie swoje aktywa w app/public folderu, a dostęp do nich ze swoimi widokami można użyć asset() metody pomocnika.

Przykł. można pobrać assets/images/image.png w widoku w następujący sposób:

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

+0

Składnia {{asset()}} nie działa w moim przypadku. Używam: background: url ('{{asset (' assets/images/image.png ')}}') To nie działa w ogóle lol. Błędy składni PHP. Nie wiem, dlaczego ciągle widzę tę składnię, gdy zawsze zwraca błędy w każdym kontekście – vikingcode

+2

To nie jest 'url ('{{zasób (' assets/images/image.png ')}})' !!, nawiasy klamrowe '{{' jakiś ciąg "}}" oznacza ' 'w silniku szablonów kasetowych i nie musisz wywoływać funkcji' url', funkcja 'asset' zwróci poprawny adres URL twojego obrazu, wypróbuj dokładny kod w moim poście powyżej bez dodawania czegokolwiek. –

+0

i nie zapomnij umieścić wszystkich zasobów w folderze 'app/public/assets'. –

2

Poza umieścić wszystkie swoje aktywa w folderze z publicznej, można użyć metody HTML::image() i tylko potrzebuje argumentu, który jest ścieżką do obrazka w stosunku do folderu publicznego, a także:

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

który generuje kod HTML obserwacji:

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

Link do innych elementów HTML::image() Metoda: http://laravel-recipes.com/recipes/185/generating-an-html-image-element

0

trzeba zrobić dwa kroki:

  1. umieścić wszystkie swoje pliki (css, js, kodu HTML, itp) do folderu publicznego.
  2. Użyj url({{ URL::asset('images/slides/2.jpg') }}) gdzie images/slides/2.jpg jest ścieżką Twojej zawartości.

Podobnie można nazwać js, css itp

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

aktywami predefiniowane jest tu więc nie sprawiają, że aktywa. Po prostu użyj tego :)

Powiązane problemy