2015-09-22 34 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