変換しようとしているCodeIgniterWebアプリがあります(更新:JQM UIをオーバーレイしようとしています)[jQueryMobileアプリに]。CodeIgniterコントローラーにリンクするタブの設定に問題があります。
これは私の「header.php」ビューのコードです-内<div data-role="page"></div>
。これはメインコントローラーによって呼び出され、正常に動作します。ここで、問題:受信トレイと呼ばれる新しいコントローラーを呼び出すようにjQueryMobileのナビゲーションバータブを設定しようとしています。
<div data-role="footer" data-position="fixed">
<div data-role="navbar">
<ul>
<li>
<a href='<?php echo base_url()."inbox"?>' data-ajax="false">Inbox</a>
</li>
</ul>
</div>
</div>
jQuery Mobileがない場合、リンクは正常に機能し、受信トレイCodeIgniterコントローラーをトリガーしますが、header.phpビューでJQMを有効にすると、[受信トレイ]タブをクリックすると「404NotFound」ページが表示されます。
更新-htmlヘッドのこのjQueryコード:
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
<link rel="stylesheet" href="<?php echo base_url(); ?>assets/all-mobile.css" type="text/css" media="screen"/>
<link rel="icon" href="<?php echo base_url(); ?>assets/images/logo.png" />
<link rel="apple-touch-icon-precomposed" href="<?php echo base_url(); ?>assets/images/logo.png" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
更新2:このコードをt.jsに挿入して、自動ajaxリンクを削除した場合:
$(document).bind("mobileinit", function(){
$.mobile.ajaxEnabled = false;
});
そして私の新しいheadhtmlコードは次のようになりました:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="<?php echo base_url(); ?>assets/js/t.js"></script>
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
…jQueryMobileは読み込まれますが、「受信トレイ」リンクはCIによって404ページを生成します。
更新3:ローカルなものに問題があると判断しました。CIコードと新しいjQueryMobileスクリプトをWebサーバーにアップロードすると、inbox.phpコントローラーにリンクしているタブが実際に機能します。MAMPを使用しているローカルマシンで機能しない理由を誰かが知っていますか?現在、この構成ではローカルで開発およびテストできないようです。修正はありますか?
jquerymobile.com/demos/1.2.0/docs/api/globalconfig.htmlでallowCrossDomainPagesを見て、$。mobile.allowCrossDomainPages=true;を追加しました。jQueryの初期化には適用されますが、MAMPを実行しているローカルホストサーバーがinbox.phpコントローラーを提供するのに役立ちませんでした。それでも404です。
更新4:問題は解決しました。隠しファイル.htaccessに問題があったことが判明しました。URIを書き換えるために、「RewriteBase /myapp-mobile/」が含まれています。このディレクトリをhtdocsの下の新しいフォルダに移動すると、このディレクトリが正しくなくなりました。