2015-09-22 37 views
3

我第一次使用Laravel,並運行到我的本地主機服務器的問題。Laravel 5公共資產的本地路徑是什麼? (使用server.php)

一旦我部署站點,我可以查看我上傳在以下地址的圖像:

www.mysite.com/storage/img/1.jpg

mysite.com設置爲Laravels公用文件夾。訪問mysite.com網址顯示laravel歡迎頁面。

現在對於本地主機,運行使用下面的命令,從而運行Laravels服務器腳本:

PHP -S本地主機:4000 server.php

訪問本地主機:4000 URL顯示laravel歡迎頁面。用我命名的路線附加這個URL可以按預期運行Laravel路線。但我無法訪問我在任何地址提到的.jpg!即使在laravel視圖中引用。

http://localhost:4000/storage/img/1.jpg

^返回未找到404頁

http://localhost:4000/public/storage/img/1.jpg

^再次返回laravel歡迎頁面!

在使用server.php腳本設置本地環境時,我如何引用資產或公共文件夾中的任何內容?這些路徑不能在視圖內使用絕對或相對路徑。提前致謝!

我(未經編輯)server.php腳本看起來像這樣:)

<?php 

/** 
* Laravel - A PHP Framework For Web Artisans 
* 
* @package Laravel 
* @author Taylor Otwell <[email protected]> 
*/ 

$uri = urldecode(
    parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) 
); 

if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) { 
    return false; 
} 

require_once __DIR__.'/public/index.php'; 
+0

** public **目錄中是否有任何** storage **文件夾? –

+0

是的。/public/storage和/ public/storage/img圖片 – Leon

回答

1

你這樣做是錯誤的,因爲在Laravel 5中刀片的存儲位於資源中,在那裏你還可以找到圖像文件夾內的assets文件夾。我建議你使用這種結構。 也請不要使用php -S服務器,而是使用像mamp,wamp或xampp這樣的環境作爲服務器。您將有權限問題和所有權問題。希望能幫助到你。

+0

我認爲公共資產應該存儲在公共文件夾內? – Leon

+0

你也可以在那裏存儲。但我們作爲一家公司,我們並沒有太多使用它。我們使用刀片資源中的資產。例如 {!! HTML :: style('resources/admin/assets/css/icons/icons.min.css')!!}從中獲取樣式{!! HTML :: script('resources/admin/assets/plugins/modernizr/modernizr-2.6.2-respond-1.1.0.min.js')!!}腳本,avatar 4圖像。 –

+0

遵守HTML時,{{asset('admin/img/avatars/avatar5_big.png')}}的路徑是什麼?或者換一種方式,路徑是從http:// localhost /? – Leon

0

http://laravel.com/docs/master/structure

存儲目錄包含編譯刀片模板,基於文件 會議,文件緩存,和其它由框架生成的文件

也許您的{app}/storage文件夾正在進行某種排序與您的{app}/public/storage文件夾衝突?考慮使用另一個名稱來「存儲」上傳的文件?

+0

好點,但它不只是公共/存儲forlder。我在/ public的其他文件夾的行爲方式相同 – Leon

+0

其他文件夾喜歡什麼?例如, – Amarnasan

+0

/public/website1/index.html。這完美地在生產服務器上運行,但無論我在做什麼,都不能在localhost服務器上找到! – Leon