UPDATE爲了讓它更清楚一些有關正在發生的事情,我的頁面沒有顯示文檔樹(我第一次見到它)。只是我的XML內容的一長串,沒有任何XML元素/標籤。無法在cakephp中寫入xml站點地圖
我跟着this tutorial在cakephp中創建動態站點地圖。本教程是在2008年編寫的,我(已繼承)在cakephp 1.3應用程序中工作(我假設這個教程適用於1.3?我已經看過其他幾乎使用2009年和2010年相同代碼的人。 )除了令人痛心的事實,我的查詢,沒有一個,當我瀏覽到mysite.com/sitemap.xml是生產什麼,我的輸出是這樣的:
http://www.site.com/ daily 1.0 http://www.site.com/gulf-coast-finest/3 2012-10-01T19:00:00Z weekly 0.9 http://www.site.com/gulf-coast-finest/4 2012-10-01T19:00:00Z weekly 0.9
當我查看源代碼「我得到正確格式的XML (有,我很想念關鍵數據除外),如下圖所示:
<?xml version="1.0" encoding="UTF-8" ?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.site.com/</loc>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<!-- posts-->
<url>
<loc>http://www.site.com/gulf-coast-finest/3</loc>
<lastmod>2012-10-01T19:00:00Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>http://www.site.com/gulf-coast-finest/4</loc>
<lastmod>2012-10-01T19:00:00Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
</urlset>
....
我撕裂我的頭髮,不知道爲什麼沒有空格或XML標籤,除非I v來源。下面是我的路線文件中的相關代碼:
Router::parseExtensions('xml');
Router::connect('/sitemap', array('controller' => 'sitemaps', 'action' => 'index'));
我的應用程序/視圖/佈局/ XML/default.thtml中的文件:
<?php
header("content-type: text/xml");
echo $this->Xml->header();
echo $content_for_layout;
?>
我的應用程序/視圖/網站地圖/ XML/index.ctp文件:
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc><?php echo Router::url('/',true); ?></loc>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<!-- posts-->
<?php foreach ($static as $s):?>
<url>
<loc><?php echo Router::url('/gulf-coast-finest/'.$s['Article']['Article.link_txt'].'/'.$s['Article']['id'],true); ?></loc>
<lastmod><?php echo $time->toAtom('2012-10-01 19:00:00'); ?></lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<?php endforeach; ?>
</urlset>
和我明明完成搞砸控制器:
<?php
class SitemapsController extends AppController{
var $name = 'Sitemaps';
var $uses = array('Category', 'Listing', 'Article', 'Location');
var $helpers = array('Time');
var $components = array('RequestHandler');
function beforeFilter() {
//debug logs will destroy xml format, make sure were not in drbug mode
Configure::write ('debug', 0);
}
function index(){
$this->RequestHandler->respondAs('xml');
$this->viewPath .= '/xml';
$this->layoutPath = 'xml';
$a=$this->Article->find('all', array('fields'=>array('Article.id', 'Article.link_txt')));
$this->set('static', $a);
}
}
?>
非常重要的缺失數據問題可能適用於另一個問題。 XML文件是一行,沒有標籤可見的人是不是我可以。我想知道它爲什麼這樣做