【发布时间】:2014-11-25 09:03:25
【问题描述】:
我在使用 laravel 渲染站点地图时遇到问题。 生成的 xml 似乎没问题,但是当我尝试从 chrome 或 firefox 调用 url 时出现错误
error on line 2 at column 6: XML declaration allowed only at the start of the document
实际上文档的第 1 行是空的,xml 声明从第 2 行开始
这是我的代码:
return Response::view('sitemap.index', ['agences' => $agences])->header('Content-Type', 'application/xml');
我也试过那个语法:
$xml = View::make('sitemap.index', ['agences' => $agences]);
return Response::make($xml, 200)->header('Content-Type', 'application/xml');
这样我就可以了
dd($xml->render());
并意识到返回的字符串没有空的第一行。 所以我猜 Response::make 是罪魁祸首,但我真的不知道从那里看哪里
【问题讨论】:
-
我想您已经在文档开头检查了空格?
-
嗨 Adrenaxus,我什至检查了三次.....
-
尝试设置
'Content-Type', 'text/xml' -
同样的事情发生了……不过还是谢谢
-
我有一种强烈的感觉,即某处隐藏了空格或换行符。否则为什么开头会有一个空行?还尝试省略 php 结束标记 (
?>)。这也可能会创建一个空格。