排除服务器上的直接路径,例如css、js等


Exclude direct paths on server, i.e. css, js, etc

我正在试用Laravel 4,我已经成功安装并做了一些事情。不幸的是,我无法将任何CSS加载到HTML中。

CSS url是正确的,我使用HTML::style('css/bootstrap.css');为我生成。

当我访问URL(当前在localhost上)http://laravel.dev/css/bootstrap.css时,它会给我一个错误:

未找到

在此服务器上找不到请求的资源/css/bootstrap.css。

文件存储在/public/css/bootstrap.css中,为什么Laravel不能避免这种情况?我该如何克服这个问题?这条路由似乎是随着应用程序前进,而不是在服务器上查找文件。

我在本地主机环境中运行Laravel,PHP 5.4.0,Mac OS X 10.7。

您的虚拟主机或.haccess文件可能有问题,因为

HTML::style('css/bootstrap.css');

应指向

http://laravel.dev/css/bootstrap.css

它做得很正确,但您的虚拟主机配置http://laravel.dev/应指向

/var/www/laravel.dev/public/

所以,那个文件,事实上,是

/var/www/laravel.dev/public/css/bootstrap.css

如果在上找不到文件

/css/bootstrap.css

然后我不得不假设这是一个虚拟主机或重写(.htaccess)配置问题。

您必须根据HTML::style将资产文件夹放在根目录的公共目录之外。

否则,您可以通过http://laravel.dev/public/css/bootstrap.css 访问