好吧,這讓我有點瘋狂。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'
你沒有得到任何css? – huzzah 2012-04-23 17:08:45
正確 - 生產測試服務器上的移動主題沒有CSS。主題(非移動)工作得很好。 – Aji 2012-04-23 17:55:02
網絡服務器是否有權閱讀手機CSS文件? – nIcO 2012-04-23 18:03:28