MVC アプリケーションに Zend Framework を使用しています。
ビューでベース URL が必要な場合は、常に""
(空の文字列) が返されます。私のコントローラで を使用する$this->getRequest()->getBaseUrl()
と、正しいベース URL が返されます。
index.dev.php
例として、私は(production is index.php
);を通じて開発アプリケーション環境を使用しています。本番環境では、すべての URL""
が baseUrl で始まることを期待していますが、開発環境では、index.dev.php を使用して、すべての URL が で始まることを期待しています"/index.dev.php"
。
前に言ったように、ビューのbaseUrl()
ヘルパーは、開発環境であっても空の文字列を返します。ただし$this->getRequest()->getBaseUrl()
、同じ環境で使用すると、正しいベース URL が返されます。
これを解決するために、すべてのビューの$this->baseUrl()
呼び出しをに変更し、$this->baseUrl
このビュー変数をカスタム ベース コントローラー クラスで定義しました。しかし、これは私が期待する解決策ではありません。
これはモジュラー アプリケーションであり、ブートストラップ時に次のように追加されたルートを使用しています。
protected function _initRoutes(){
$objFrontController = Zend_Controller_Front::getInstance();
$objRouter = $objFrontController->getRouter();
$arrAppRoutes = Service_Route::getAllActiveApplicationRoutes();
if( is_array($arrAppRoutes) && count($arrAppRoutes) > 0 ){
$objRouter->addRoutes($arrAppRoutes);
// Add the default routes in the end
$objRouter->addDefaultRoutes();
}
}
これらのルートはすべてZend_Controller_Router_Route
クラスのインスタンスであり、次のようにビューで使用すると、$this->url(array(), 'admin_dashboard');
常にbaseUrl
正しいです (baseUrl
ビュー var ソリューションを使用する前であっても)。
誰かがこれについて知っているなら、助けてください。私のアプリケーションのセットアップに関する詳細情報が必要な場合は、できる限り提供します。
編集
実際には、問題があるようです: 空の文字列baseUrl
は、ビューに JS および CSS スクリプトを含めて正常に動作します。しかし、Ajax を使用する必要がある場合があり/index.dev.php
、アプリケーション環境を維持するためにベース URL にその部分が必要です。この最後の部分が同じ質問にあるのか、新しい質問にあるのかわかりません。