2014-07-17 100 views
11

我已經安裝了Laravel並開始嘗試編寫應用程序。我在/ app目錄下爲我的資產製作了一些目錄。但是,當我嘗試在我的本地主機訪問一個形象的比方:http://localhost/assets/images/image.pngLaravel資產url

我也試了一下:http://localhost/app/assets/images/image.png

我跑進當我試圖在一個視圖,設置背景圖片的問題,它不停地將404

這是我的應用程序看起來像下的應用程序/

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

,但我得到有關請求的錯誤。我有雙重檢查,該網址是正確的。

Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException 
+3

您的資產(以及任何需要直接由瀏覽器訪問的東西)需要進入公共目錄,因爲這應該是文檔根目錄。應用程序/文件夾不應該被瀏覽器訪問。 – judereid

回答

19

你必須把所有的資產app/public文件夾,並從您的視圖,來訪問他們,你可以使用asset() helper方法。

Ex。你可以檢索您的視圖assets/images/image.png如下:

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

+0

語法{{asset()}}在我的情況下根本不起作用。我正在使用 background:url('{{asset('assets/images/image.png')}}') 這完全不起作用。 PHP語法錯誤。不知道爲什麼我總是看到這種語法,因爲它總是在任何情況下返回錯誤 – vikingcode

+2

它不是'url {'asset {'assets/images/image.png')}})'!!,大括號'{{一些字符串'}}'意味着'<?php回聲'一些字符串'?>''在刀片模板引擎中,你不必調用'url'函數,'asset'函數會向你的圖像返回一個有效的url,請在我的文章中嘗試確切的代碼而不添加任何內容。 –

+0

,不要忘記將所有資產放在'app/public/assets'文件夾中。 –

2

除了把所有的資產在公共文件夾,您可以使用HTML::image()方法,只需要一個參數,它是將圖像的路徑相對公用文件夾,以及:

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

產生後續的HTML代碼:

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

鏈接到的HTML::image()方法之外,其他因素:http://laravel-recipes.com/recipes/185/generating-an-html-image-element

0

你要做兩個步驟:

  1. 把所有的文件(CSS,JS,HTML代碼等)到公共文件夾。
  2. 使用url({{ URL::asset('images/slides/2.jpg') }})其中images/slides/2.jpg是您內容的路徑。

同樣可以調用JS,CSS等

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

資產在此預定義,所以不要讓它資產。 只需使用此:)