Laravel 生成的 XML 文件在开头有 space
Laravel generated XML file has space at start
我正在使用 Laravel 4 生成 Google 产品 Feed。我正在使用 Blade 文件来执行此操作,但是 Laravel 在输出的最开始添加了一个谜 space,这导致 Google 拒绝了 XML 文件无效。有什么想法吗?
我的控制器是:
public function googleFeed()
{
//generates a Google Merchant XML feed of products
$products = DB::table('products')->get();
$content = View::make('shop.googlefeed', ['products' => $products]);
return Response::make($content, '200')->header('Content-Type', 'text/xml');
}
还有我的 blade 文件:
<?xml version="1.0" encoding="ISO-8859-1"?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
<channel>
<title>Title</title>
<link>http://example</link>
<description>Desc</description>
@foreach ($products as $product)
<item>
<g:id>{{($product->id)}}</g:id>
<title>{{($product->productname)}}</title>
<link>http://example.com/product/{{($product->slug)}}</link>
<description>{{($product->shortdesc)}}</description>
<g:image_link>{{($product->imgurlthumb)}}</g:image_link>
<g:price>{{($product->productprice)}} GBP</g:price>
<g:gtin>{{($product->gtin)}}</g:gtin>
<g:condition>new</g:condition>
<g:availability>in stock</g:availability>
</item>
@endforeach
</channel>
</rss>
Blade 文件中没有 space。但是,输出是:
<?xml version="1.0" encoding="ISO-8859-1"?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
<channel>
<title>Title</title>
....
为什么要添加这个space?我只是看不出它会从哪里来!这似乎不是什么大问题,但它会导致提要验证失败并被 Google 拒绝。无法确定其来源,有没有办法在处理后将其剥离?
非常感谢。
当我注意到 routes.php 文件的开头有一个 space 时,我解决了这个问题。删除这个解决了这个问题。简单但令人沮丧,希望它能帮助别人! (space 可能位于大多数文件的开头。)
<?php
Route::get('/', function () {
return "Hello";
});
...
收件人:
<?php
Route::get('/', function () {
return "Hello";
});
...
我正在使用 Laravel 4 生成 Google 产品 Feed。我正在使用 Blade 文件来执行此操作,但是 Laravel 在输出的最开始添加了一个谜 space,这导致 Google 拒绝了 XML 文件无效。有什么想法吗?
我的控制器是:
public function googleFeed()
{
//generates a Google Merchant XML feed of products
$products = DB::table('products')->get();
$content = View::make('shop.googlefeed', ['products' => $products]);
return Response::make($content, '200')->header('Content-Type', 'text/xml');
}
还有我的 blade 文件:
<?xml version="1.0" encoding="ISO-8859-1"?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
<channel>
<title>Title</title>
<link>http://example</link>
<description>Desc</description>
@foreach ($products as $product)
<item>
<g:id>{{($product->id)}}</g:id>
<title>{{($product->productname)}}</title>
<link>http://example.com/product/{{($product->slug)}}</link>
<description>{{($product->shortdesc)}}</description>
<g:image_link>{{($product->imgurlthumb)}}</g:image_link>
<g:price>{{($product->productprice)}} GBP</g:price>
<g:gtin>{{($product->gtin)}}</g:gtin>
<g:condition>new</g:condition>
<g:availability>in stock</g:availability>
</item>
@endforeach
</channel>
</rss>
Blade 文件中没有 space。但是,输出是:
<?xml version="1.0" encoding="ISO-8859-1"?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
<channel>
<title>Title</title>
....
为什么要添加这个space?我只是看不出它会从哪里来!这似乎不是什么大问题,但它会导致提要验证失败并被 Google 拒绝。无法确定其来源,有没有办法在处理后将其剥离?
非常感谢。
当我注意到 routes.php 文件的开头有一个 space 时,我解决了这个问题。删除这个解决了这个问题。简单但令人沮丧,希望它能帮助别人! (space 可能位于大多数文件的开头。)
<?php
Route::get('/', function () {
return "Hello";
});
...
收件人:
<?php
Route::get('/', function () {
return "Hello";
});
...