2009-08-26 8 views
6

इस वेबसाइट को www.fltdata.com देखें। किसी कारण से होम लिंक इससे कोई फर्क नहीं पड़ता कि आप होम पेज पर इंगित करने के बजाय क्या पेज जाते हैं यह वर्तमान पृष्ठ को इंगित करता यह मेरी स्थानीय होस्ट पर ठीक काम करता है, लेकिन ऑनलाइन इस तरह अपने व्यवहार घर लिंक के href मूल्य अभी है:।। $ this-> baseurl()

क्या यहाँ गलत ..

: === संपादित ===

खैर मैं एक सहायक जो रूप में नीचे है बनाया है

एएनडी यह मुझे लगता है कि जब भी मैं इसे $-- baseUrl कहता हूं तो क्या कहा जा रहा है। क्या यह समस्या हो सकती है - हालांकि यह मेरे लोकहोस्ट में ठीक काम करता है और ऑनलाइन नहीं - ऐसा कुछ प्रकार की कॉन्फ़िगरेशन समस्या होनी चाहिए - मुझे कहां देखना चाहिए?

उत्तर

15

यह कहना मुश्किल है कि आपके ZF सेटअप और e.h के बारे में अधिक जानकारी के बिना यहां क्या गलत हो रहा है। यूआरएल-रीराइटिंग-सेटअप। Zend_Controller_Request_Http::getBaseUrl() के पीछे तर्क - यह वह जगह है जहां Zend_View_Helper_BaseUrl::baseUrl() पर आपका कॉल किया जाएगा यदि baseUrl स्पष्ट रूप से फ्रंट-कंट्रोलर में सेट किया गया है - यह काफी जटिल है और इसमें 4 अलग-अलग सर्वर चर शामिल हैं (और वर्तमान अनुरोध यूआरआई निर्धारित करने की प्रक्रिया में कुछ और) ।

इस समस्या को दूर करने के लिए सबसे आसान बात शायद आपके बूटस्ट्रैप में फ्रंट-कंट्रोलर पर baseUrl (सर्वर रूट के सापेक्ष) सेट करना होगा। आप नए Zend_Application -bootstrapping उपयोग कर रहे हैं तो आप बस अपने विन्यास को

resources.frontController.baseUrl = "/subdir" 

जोड़ना होगा।

संपादित

आपका सहायक और अधिक या कम से मिलता-जुलता मूल baseUrl -helper जेडएफ के साथ भेज दिया। मूल भी Zend_Controller_Front::getBaseUrl() पर प्रॉक्सी करता है। आप जेडएफ का किस संस्करण का उपयोग करते हैं? क्या कोई कारण है कि आप भेजे गए baseUrl -helper का उपयोग नहीं करते हैं?

क्या आपने अपने बूटस्ट्रैपिंग में baseUrl को स्पष्ट रूप से सेट करने का प्रयास किया है?

+0

मैं :(की काफी अनभिज्ञ हूं Zend पर एक बहुत theres - मैं अपने सहायक समारोह तैनात - कुछ वहाँ गलत है – Ali

+0

असल में मैं सिर्फ एक ट्यूटोरियल और पीछा कर रहा था? साइट किडा उस से बना है - मुझे नहीं लगता कि मैं अपने बूटस्ट्रैप फ़ाइल में बेसयूआरएल को कहीं भी – Ali

+0

पर सेट कर रहा हूं क्या आपने बेसयूआरएल को स्पष्ट रूप से सेट करने का प्रयास किया है? परिणाम क्या है? क्या आपने शिप किए गए बेस यूआरएल-हेल्पर का उपयोग करने का प्रयास किया है? परिणाम क्या है? –

6

मैं आमतौर पर आधार यूआरएल के लिए एक विन्यास वस्तु का उपयोग और उसके बाद कॉन्फ़िगरेशन/application.ini उत्पादन अनुभाग

के तहत मैं इस राशि में सार्वजनिक/index.php

$config = new Zend_Config_Ini(
     APPLICATION_PATH . '/configs/application.ini', APPLICATION_ENV); 
    $baseUrl = $config->baseHttp; 
    define('BASE_URL', $baseUrl);` 

में index.php में परिभाषित

[production] 
baseHttp       = "http://whatever.net" 

इस तरह अगर मैं कभी भी developement में एक अलग आधार यूआरएल उपयोग करने के लिए मैं सिर्फ baseHttp के लिए एक diiferent चर व्यक्तिगत रूप से मुझे लगता है कि जोड़ सकता है आप एक baseurl उस में लपेटकर की तुलना में एक सरल तरीका है घुमावदार करने के लिए नहीं चाहते हैं, तो जरूरत है अपनी कक्षा कभी-कभी ओओपी बहुत अधिक ओओपी है। इसके अलावा यह एक इंस्टॉलेशन प्रोग्राम को प्रबंधित करने के लिए और अधिक आसान बना देगा। होस्टनाम प्राप्त करने के लिए आपको $ _SERVER वैरिएबल भी मिल सकता है और इसे http: //

2

से लपेट सकता है। मेरे दृश्य में $-- baseUrl का उपयोग करते समय मुझे एक ही समस्या थी। मुझे इसका उपयोग करने से मुझे वर्तमान पृष्ठ का यूआरएल मिलेगा:

बेसयूआरएल; ?> http://www.yourwebaddress.com/

4
;> "?> /> http://www.yourwebaddress.com/current-page

और यह मेरे असली baseurl वर्तमान पृष्ठ की परवाह किए बिना देना होगा

baseurl (स्लेश ध्यान दें यूआरएल के अंत में जोड़ा)"

ज़ेंड फ्रेमवर्क हमेशा चालू पृष्ठ लौट रहा है क्योंकि आप $ को कॉल करने के बाद पीछे की ओर स्लैश का उपयोग नहीं कर रहे हैं-> baseUrl();

समस्या को हल करने के लिए $ को कॉल करने के बाद एक पीछे पीछे स्लैश संलग्न करें-> baseUrl(); आपके विचार में तो जैसे:


सही रास्ता

<a href="<?php echo $this->baseUrl() . "/"; ?>">Home Link</a> 

या

<a href="<?php echo $this->baseUrl(); ?>/">Home Link</a> 

पृष्ठ पर एक लिंक में स्लैश परिणाम छोड़ना आप ' वर्तमान में देख रहे हैं।

गलत रास्ता

<a href="<?php echo $this->baseUrl(); ?>">Home Link</a> 
संबंधित मुद्दे