我正在使用 Laravel 5.6 开发一个小型网络应用程序。我最近将 Laravel 升级到 5.6,因此也将 PHP 更新到 7.2.3 版本,因为 php7.1 是 Laravel 的要求。
我正在 Windows 10 机器上开发。
为了测试,我使用了 php 内置的网络服务器。我要么使用 Laravel 快捷方式启动服务器php artisan serve
,要么直接调用php -S localhost:8000 -t public
命令,结果是一样的。
由于我更新了 php,我无法通过浏览器访问任何资产(css、js)。
刀片文件:
<head>
<meta charset="UTF-8">
<title>My Site</title>
<link href="{{ asset('css/search.css') }}" rel='stylesheet'>
</head>
在 Chrome 中输出:
<head>
<meta charset="UTF-8">
<title>My Site</title>
<link href="http://localhost:8000/css/search.css" rel='stylesheet'>
</head>
laravel 项目的文件夹结构为:
- Root of Laravel Project
- public
- css
- search.css
我无法search.css
通过输入访问文件http://localhost:8000/css/search.css
,服务器日志127.0.0.1:52980 [404]: /css/search.css - No such file or directory
该文件在正确的位置,并且生成的 url 也正确。事实上,我没有改变任何东西,并且使用旧的 php 版本它可以工作。但当然,我仔细检查了十几次。controller.php
用几行代码验证我的路径:
public function index(Request $request)
{
$t3 = public_path("css\\search.css");
var_dump($t3);
var_dump(file_exists($t3));
}
结果是:
string(91) "C:\Users\me\Documents\LaravelProject\public\css\search.css" bool(true)
将应用程序部署到 AWS EB 环境即可。所以我猜,内置的网络服务器有问题。
任何人都可以想象,有什么问题吗?小型网络服务器在开发过程中当然非常方便。