2012-04-23 67 views
0

好吧,這讓我有點瘋狂。CakePHP iPad佈局未加載

我創建了一個移動佈局,主要用於iPad。我使用AppController中的beforeRender()函數來檢測移動客戶端並相應切換主題。

當我使用iOS模擬器在我的本地開發服務器上測試移動網站時,它一切正常。主題得到正確加載和所有。但是,當我在在線製作服務器上訪問它時,移動主題不會被加載。我看到內容,但沒有任何造型。

在線測試可以在這裏找到:http://www.anuragdesign.com/test/mbv

爲什麼會是什麼?任何輸入是不勝感激。

更新:

下面是相關的代碼片段:

在我AppController.php

public function beforeRender() { 
    if($this->RequestHandler->isMobile()) { 
     $this->theme = 'mobile'; 
    } 

} 

/lib/cake/Network/CakeRequest.php

protected $_detectors = array(
    'get' => array('env' => 'REQUEST_METHOD', 'value' => 'GET'), 
    'post' => array('env' => 'REQUEST_METHOD', 'value' => 'POST'), 
    'put' => array('env' => 'REQUEST_METHOD', 'value' => 'PUT'), 
    'delete' => array('env' => 'REQUEST_METHOD', 'value' => 'DELETE'), 
    'head' => array('env' => 'REQUEST_METHOD', 'value' => 'HEAD'), 
    'options' => array('env' => 'REQUEST_METHOD', 'value' => 'OPTIONS'), 
    'ssl' => array('env' => 'HTTPS', 'value' => 1), 
    'ajax' => array('env' => 'HTTP_X_REQUESTED_WITH', 'value' => 'XMLHttpRequest'), 
    'flash' => array('env' => 'HTTP_USER_AGENT', 'pattern' => '/^(Shockwave|Adobe) Flash/'), 
    'mobile' => array('env' => 'HTTP_USER_AGENT', 'options' => array(
     'AvantGo','DoCoMo', 'Fennec', 'iPad', 'J2ME', 'MIDP', 'NetFront', 'Nokia', 'Opera Mini', 'Opera Mobi', 'PalmOS', 'PalmSource', 
     'portalmmm', 'Plucker', 'ReqwirelessWeb', 'SonyEricsson', 'Symbian', 'UP\\.Browser', 
     'webOS', 'Windows CE', 'Windows Phone OS', 'Xiino' 
    )), 
    'requested' => array('param' => 'requested', 'value' => 1) 
); 

移動樣式表位於:

/app/View/Themed/mobile/webroot/css/mobile.css

和被調用的佈局文件的初始頁面/應用/View/Themed/mobile/Layouts/splash.ctp像這樣:

<?php echo $this->Html->css(array('reset.defaults', 'mobile', 'superfish')); ?> 

更新:

在網上設置3210

調試($ _ SERVER [ 'HTTP_USER_AGENT')prodces以下的輸出:

'Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5' 
+0

你沒有得到任何css? – huzzah 2012-04-23 17:08:45

+0

正確 - 生產測試服務器上的移動主題沒有CSS。主題(非移動)工作得很好。 – Aji 2012-04-23 17:55:02

+0

網絡服務器是否有權閱讀手機CSS文件? – nIcO 2012-04-23 18:03:28

回答

0

修復(好樣的)

我做了幾個步驟,最終似乎解決它。這個問題似乎是在線製作服務器上,它會嘗試從常規的webroot文件夾提供樣式表,而不是我的主題。我不知道爲什麼,但你去了。所以首先,我複製所有的移動樣式表,並把它們放在/ app/webroot/css /(vs他們應該去的地方/ app/View/Themed/mobile/webroot/css /。然後我也重新命名了元素,它被用於移動和非移動視圖,以確保移動的(位於/ app/View/Themed/mobile/Elements)都具有唯一的名稱。

這似乎工作,但所有如果有人有更好的解決方案,我很樂意聽到。