Laravel返回根视图而不是静态内容

时间:2014-08-02 00:49:59

标签: file static laravel-4 public

我有一条路线:

Route::controller('/', 'HomeController');

HomeController有一个行动getIndex,可以正常使用。但是,当浏览到http://localhost:4040/public/style.css时,应用程序将从HomeController::getIndex返回视图。是什么赋予了??不应该返回静态文件style.css ??我已经确认CSS文件确实存在于公共文件夹中。

要清楚,我正在运行这样的应用程序:

php -S localhost:4040 server.php

修改

嗯,所以以下似乎有效:

1)通过以下方式为项目服务:

php artisan serve

2)没有public/前缀的参考文件。

php artisan serve命令执行的操作有何不同?

1 个答案:

答案 0 :(得分:0)

使用Route::controller()时,如果查看php artisan routesgetIndex路由会有一个可选参数{one?}/{two?}/...,因为这些参数没有匹配的模式{{1}被style.css抓住了。这是完全预期的行为,{one?}

但是,使用index.php,首先调用php artisan serve文件。

server.php

你可以清楚地看到它在$uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); $uri = urldecode($uri); $paths = require __DIR__.'/bootstrap/paths.php'; $requested = $paths['public'].$uri; // This file allows us to emulate Apache's "mod_rewrite" functionality from the // built-in PHP web server. This provides a convenient way to test a Laravel // application without having installed a "real" web server software here. if ($uri !== '/' and file_exists($requested)) { return false; } require_once $paths['public'].'/index.php'; 中检查文件是否真实,如果是,它会停止调用可能将其作为路由参数处理的if ($uri !== '/' and file_exists($requested)),而是返回一个真实的文件。