【发布时间】:2014-05-01 13:37:03
【问题描述】:
我需要使用 CakePHP 自动生成站点地图。我遵循了本教程: http://designaeon.com/blog/2012/07/cakephp-xml-sitemap-generation/ 一步一步,但我的http://mysite123.com/sitemap.xml 只显示以下错误:
此页面包含以下错误:
第 2 行第 6 列的错误:XML 声明只允许在文档的开头 下面是出现第一个错误之前的页面渲染。
我的代码如下所示:
控制器/SitemapsController.php:
<?php
class SitemapsController extends AppController{
var $name = 'Sitemaps';
var $uses = array('Video');
function index(){
$this->set('videos', $this->Video->find('all'));
Configure::write ('debug', 0);
}
}
?>
查看/站点地图/xml/index.ctp:
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<?php foreach ($videos as $vid): ?>
<url>
<loc><?php echo Router::url('/',true); ?>post/
<?php echo $vid['Video']['id'];?></loc>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<?php endforeach; ?>
</urlset>
查看/布局/xml/default.ctp:
<?php header('Content-type: text/xml'); ?>
<?php echo $content_for_layout; ?>
routes.php:
Router::parseExtensions('xml');
Router::connect('/sitemap', array('controller' => 'sitemaps', 'action' => 'index'));
你能帮帮我吗?
【问题讨论】:
-
您应该完全专注于呈现的 xml(这不是问题)。当你知道为什么它是无效的 - 然后看看你的代码为什么会这样生成它。