.css

2012-09-14 15 views
5

जैसी फ़ाइलों के लिए सापेक्ष पथ का उपयोग कैसे करें मेरे पास एक header.php फ़ाइल है जिसमें एक .css फ़ाइल लिंक है।.css

जब मैं header.php को विभिन्न फ़ोल्डर में किसी अन्य php फ़ाइल में शामिल करता हूं, तो header.php में .css फ़ाइल href नई php फ़ाइल में सही नहीं है।

मुझे .css href को कैसे हटाया जाना चाहिए, इसलिए मैं किसी भी फ़ोल्डर में header.php को इसके साथ शामिल कर सकता हूं?

+0

अपने डोमेन से संबंधित पथों का उपयोग क्यों न करें, जैसे '/ शैलियों/your.css' –

+1

अपने header.php फ़ाइल में सीएसएस के लिए पूर्ण लिंक का उपयोग करें – Adsy2010

उत्तर

1
इस तरह

:

<link rel="stylesheet" href="/css/style.css" /> 

पहले / कहते हैं "रूट निर्देशिका पर जाएँ और वहाँ से देखने के लिए"। यह एक सापेक्ष पथ है।

<link href="http://site.com/css/style.css" />

0

तरह सीएसएस फ़ाइल का निरपेक्ष पथ लिखें।

/css/style.css यदि आपके आवेदन डोमेन/उपडोमेन की रूट निर्देशिका में स्थित है काम करते हैं, यह विफल हो जाएगा अगर यह (/appName/css/style.css)

स्टोर निरपेक्ष यूआरआई 'जड़' स्क्रिप्ट फ़ोल्डर में साथ नहीं है अन्य कॉन्फ़िगरेशन स्थिरांक/चर के साथ, और पूर्ण लिंक बनाना एक हवा बन जाता है।

define('SCRIPT_ROOT', 'http://localhost/yourApplication'); 
// ... 
echo '<link rel="stylesheet" type="text/css" href="'.SCRIPT_ROOT.'/css/style.css">'; 
13

यह एक कारण कई बड़े एप्लिकेशन इंस्टॉल करते समय एक 'जड़ URI' निरंतर/चर सेट करने की कोशिश करेंगे है:

+0

यदि मैं पूर्ण यूआरआई config.php पर संग्रहीत करता हूं, तो मैं header.php में config.php को शामिल करने की आवश्यकता है। जैसा कि मैंने कहा header.php और नए php एक ही फ़ोल्डर में नहीं हैं, नई php फ़ाइल अब .css फ़ाइल के बजाय config.php नहीं मिल रहा। इससे चीज़ें आसान नहीं होती हैं। –

+0

यदि आपका कोड 'यह है जहां' किसी भी निर्देशिका संरचना में, मुझे यकीन है कि नहीं कर रहा हूँ क्या मैं आपकी मदद कर सकते हैं के बारे में पता नहीं है। क्या आप कॉन्फ़िगरेशन फ़ाइल में रिश्तेदार स्थान को हार्ड-कोड नहीं कर सकते? – discomatt

7

आप कुछ ही विकल्प है, जो मैं

आधार href यहाँ इकट्ठा करने के लिए

<head> 
<base href="http://www.mysite.com/" /> 
</head> 

यह क्या करता है, सेट सब hrefs निश्चित पथ को इंगित करने के लिए है की कोशिश की है की है। इस सेट के साथ, आप <link rel='stylesheet' href='css/mycss.css' /> उपयोग कर सकते हैं और सफलतापूर्वक mycss.css फ़ाइल लोड भले ही आप कर रहे हैं पेज http://www.mysite.com/pages/2012/public/secret_folder/myownphpfile.php

निरपेक्ष पथ

तुम हमेशा इस तरह के रूप aboslute रास्तों का उपयोग कर सकते में नीचे गहरी है, लेकिन यह फ़ाइलों के फ़ोल्डर्स को बाद में बदलने के लिए दर्द हो सकता है।

<link rel='stylesheet' href='http://www.mysite.com/css/mycss.css' /> 

परिभाषित pats

रूप @Discomatt बताया, पीएचपी परिभाषित रास्तों का उपयोग कर एक आसान तरीका चीजें काम कर रखने के लिए है। नकारात्मक; आपको PHP का उपयोग करना होगा। यदि आप इसे वैसे भी उपयोग करते हैं, कोई समस्या नहीं ^^

define('CSSDIR', 'http://www.mysite.com/css/); 
<link rel='stylesheet' href='<?= CSSDIR ?>mycss.css' /> 
4

मैं href लिंक के लिए गतिशील और रिश्तेदार पथ पीढ़ी है के लिए इच्छुक के लिए एक कारण देख सकते हैं, और वह यह है कि यदि आप अनेक डोमेन या साइटों पर अपने प्रोजेक्ट को चलाने विभिन्न पथ (उदाहरण के लिए, आपकी परियोजना http://myproject.example.org/ पर और http://example.org/myprojecttest/ पर भी उपलब्ध है)।अगर ऐसा नहीं है, मैं सीधे अपने सीएसएस को निर्दिष्ट रूट फ़ोल्डर के सापेक्ष शामिल सुझाव है: हर शीर्ष स्तर के दस्तावेज़ में

:

<link href="/css/style.css" /> 

इस यदि आप पर लागू होता है, यह कोशिश जिसके लिए header.php की आवश्यकता होती है, एक रूट रूट वैरिएबल जोड़ें जो रूट की तुलना में शीर्ष-स्तरीय दस्तावेज़ के स्थान को इंगित करता है। उदाहरण के लिए:

$ROOT = './'; 

या

$ROOT = '../'; 

या

$ROOT = '../../'; 

अब, अपने header.php फ़ाइल में, आप का उपयोग कर सकते हैं:

<link href="<?php echo $ROOT; ?>css/style.css" /> 

यह आपको बनाने के लिए अनुमति देता है एक header.php फ़ाइल जो किसी भी पृष्ठ के लिए किसी भी सापेक्ष पथ पर काम करेगी।

पूर्ण उदाहरण

शामिल फ़ाइल (/path/header.php)

<html><body> 
<head> 
    <link href="<?php echo $ROOT; ?>css/style.css" /> 
[...] 

फ़ाइल 1 (/path/index.php):

<?php 
$ROOT = './'; 
include 'header.php'; 
?>  

फ़ाइल 1 (/path/admin/index.php):

<?php 
$ROOT = '../'; 
include '../header.php'; 
?>  

फ़ाइल 3 (/path/admin/test/magic.php):

<?php 
$ROOT = '../../'; 
include '../../header.php'; 
?>  
0

पर Tom's answer मैं base url का एक संयोजन और एक PHP define (कम टाइपिंग के लिए) किया आधार पर।

PHP में कहीं न कहीं

:

define("HOST_BASE", "http://example.com/"); 

फिर हेडर फाइल में:

<base href="<?php echo HOST_BASE ?>"> 

आधार टैग मेरे लिए नया था और मैं संगतता के बारे में चिंतित था, लेकिन यह अच्छी तरह से काम करने के लिए प्रकट होता है। more info about it at MDN है।

संबंधित मुद्दे