也许这是显而易见的事情但是我很难过,我发现我的本地PHP环境正在提供嵌入了响应头的静态文件。
这是在Fedora 20上使用PHP 5.5.11的Laravel 4.1.26,已经过测试laravel serve
和php -S localhost:8000 server.php
,两者都有相同的结果。
我尝试使用Firefox,Opera和Chromium,它看起来像显示原始二进制响应:
这会导致我所有js文件出错。
值得我尝试curl
和wget -q -O -
并且回复正常,没有显示标题。这看起来像PHP的内置服务器问题,我应该先在哪里挖掘?
修改
这不是PHP的事情,它与Laravel使用文件“server.php”模拟mod_rewrite有关,如果我踩到公共文件夹并使用php -S
启动服务器(忽略{{ 1}}和server.php
)然后一切都很好。
EDIT2:
缩小搜索范围,laravel serve
在Debian 8 Jessie中使用相同的PHP版本(5.5.11)运行正常,在Fedora环境中有所不同。
答案 0 :(得分:3)
只是改变:
if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) {
return false;
}
到
if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) {
ob_end_clean ();
return false;
}
它为我解决了