जवाबों:
मेरा सेटअप इस तरह है:
मेरे पास एक सहायक कार्य है जो बस मेरे सेटअप के आधार पर इसके लिए पूर्ण पथ देता है, कुछ इसी तरह से:
आवेदन / सहायकों / utility_helper.php:
function asset_url(){
return base_url().'assets/';
}
मैं आम तौर पर समान रूटीन को एक ही फाइल में इसके समान रखूंगा और कोडिनाइटर के ऑटोलैड कॉन्फ़िगरेशन के साथ इसे ऑटोलॉड करूंगा।
नोट:
base_url()
पहुँच के लिए ऑटोलॉड URL सहायक ।
आवेदन / config / autoload.php:
$autoload['helper'] = array('url','utility');
फिर asset_url()
आपके पूरे कोड तक पहुंच होगी ।
$autoload['helper'] = array('url', 'utility');
नहीं, विचार फ़ोल्डर के अंदर अच्छा नहीं है।
देखो: आपके पास अपने प्रोजेक्ट पर 3 बेसिक फोल्डर होने चाहिए:
सिस्टम // यह CI फ्रेमवर्क है इस फाइल को छूने के लिए ज्यादा कारण नहीं हैं
आवेदन // यह वह जगह है जहां आपका तर्क जाता है, जो फ़ाइलें एप्लिकेशन बनाती हैं ,
public // यह आपका documentroot होना चाहिए
सुरक्षा कारणों से अपनी रूपरेखा और अपने डॉक्यूमेंट के बाहर के अनुप्रयोग को रखने के लिए बेहतर है, (public_html, htdocs, public, www ... आदि)
अपने सार्वजनिक फ़ोल्डर के अंदर, आपको अपनी सार्वजनिक जानकारी डालनी चाहिए, ब्राउज़र क्या देख सकते हैं, फ़ोल्डर खोजने के लिए इसका सामान्य: चित्र, js, css; तो आपकी संरचना इस प्रकार होगी:
|- system/
|- application/
|---- models/
|---- views/
|---- controllers/
|- public/
|---- images/
|---- js/
|---- css/
|---- index.php
|---- .htaccess
public
। मुझे किसी भी फ़ोल्डर का नाम नहीं मिल रहा है । मुझे एक ही नाम के साथ एक फ़ोल्डर जोड़ने के लिए कोई समस्या नहीं है।
.htaccess
हटाने /index.php?
और कॉल करने के लिएbase_url().'public/yourfolder';
यह है कि मैं सार्वजनिक संपत्ति को कैसे संभालता हूं। यहाँ मैं फाल्कन PHP का उपयोग करता हूँ की बूटस्ट्रैप विधि का उपयोग करता हूँ।
|-.htaccess*
|-application/
|-public/
|-.htaccess**
|-index.php***
|-css/
|-js/
|-img/
|-font/
|-upload/
|-system
.htaccess*
परियोजना के सभी अनुरोधों को सार्वजनिक / निर्देशिका में फिर से लिखा जाएगा, जिससे यह दस्तावेज़ जड़ हो जाएगा। यह कदम यह सुनिश्चित करता है कि आंतरिक परियोजना फ़ोल्डर सार्वजनिक देखने से छिपे रहें और इस प्रकार इस तरह के सुरक्षा खतरों को समाप्त कर दें। - फाल्कोनकप डॉक्टर
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
</IfModule>
.htaccess**
अनुरोधित फ़ाइल मौजूद है और यदि यह करता है, तो नियमों की जांच होगी, यह वेब सर्वर मॉड्यूल द्वारा फिर से लिखा जाना नहीं है। - फाल्कोनकप डॉक्टर
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
</IfModule>
index.php***
application
पथ और system
पथ को संशोधित करें ,
$system_path = '../system';
$application_folder = '../application';
अब आप public
फ़ोल्डर का उपयोग करें base_url()."public/[YOUR ASSET FOLDER]"
उम्मीद है की यह मदद करेगा :)
/public
इसलिए base_url ()."public/[...
! यह सिर्फ होना चाहिए base_url ()."/[YOUR ASSET FOLDER]"
।
मैं आमतौर पर अपनी सभी फाइलों को एप्लिकेशन रूट में "संपत्ति" फ़ोल्डर में डाल देता हूं, और फिर मेरे लिए उन फाइलों को इंगित करने के लिए एक एसेट_ हेल्पर का उपयोग करना सुनिश्चित करता हूं। यह वही है जो CodeIgniter सुझाव देता है।
कोई नहीं कहता है कि आपको .htacces को संशोधित करने और निर्देशिका को फिर से लिखने की स्थिति में जोड़ने की आवश्यकता है। मैंने "सिस्टम", "एप्लिकेशन", "index.php" के साथ रूट निर्देशिका में "सार्वजनिक" बनाया है। और .htaccess फ़ाइल को इस तरह संपादित किया:
RewriteCond $1 !^(index\.php|public|robots\.txt)
अब आपको बस कॉल करना है <?php echo base_url()."/public/yourdirectory/yuorfile";?>
आप अपनी पसंद के अनुसार "सार्वजनिक" डायर के अंदर उपनिर्देशिका जोड़ सकते हैं।
भले ही आप सीएसएस फ़ाइल डालते हैं, आप बस link_tag () नामक कोडइंटराइटर "html" सहायक का उपयोग कर सकते हैं। आप इस सहायक को कुछ इस तरह लागू करेंगे:
echo link_tag('folder/subfolder/stylesheet.css');
यह आप पर निर्भर करता है कि आप सबसे उपयुक्त जगह (अपनी राय में) सीएसएस फ़ाइल का पता लगा सकते हैं। आपको "html" हेल्पर को या तो ऑटोलॉगड करना होगा या इसे इस्तेमाल करने के लिए अलग से लोड करना होगा।
लोग इसे प्राप्त करने के लिए base_url () के उपयोग का सुझाव देते रहते हैं लेकिन यह वास्तव में ऐसा करने के लिए "CodeIgniter" तरीका नहीं है (मुझे लगता है कि इस प्रश्न में कुछ डुप्लिकेट हैं)। यह काम करेगा लेकिन एक रूपरेखा का उपयोग करने का एक कारण इसके भीतर पूर्व-निर्मित कार्यों का उपयोग करना है।
इस तरह का काम करने के लिए कोडिग्निटर में कई हेल्पर्स होते हैं।
एक फ़ोल्डर को किसी भी नाम से जोड़ें जैसे कि सार्वजनिक और .htaccess फ़ाइल को जोड़ें और इसे सभी साधनों से अनुमति दें , इस फ़ोल्डर में आपकी सभी फाइलें और सभी फ़ोल्डर त्रुटि नहीं देंगे। प्रवेश वर्जित है! इसे इस तरह से उपयोग करें
<link href="<?php echo base_url(); ?>application/public/css/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="<?php echo base_url(); ?>application/public/js/javascript.js"></script>
मैं नवीनतम संस्करण 3.1.0 का उपयोग कर रहा हूँ। इसका फ़ोल्डर संरचना है:
वहीं आपको एसेट्स फोल्डर के अंदर इमेजेस, css और js फाइल्स डालनी चाहिए।
(मैं Codeigniter के लिए नया हूं, इसलिए मुझे नहीं पता कि यह सबसे अच्छी सलाह है)
मैं अपने सार्वजनिक फ़ोल्डर में सार्वजनिक रूप से उपलब्ध फाइलें रखता हूं। यह उनके लिए तर्कसंगत है, और मैं कुछ के लिए Codeigniter का उपयोग नहीं करना चाहता, जिसके लिए मुझे इसका उपयोग करने की आवश्यकता नहीं है।
डायरेक्टरी ट्री इसे पसंद करता है:
केवल वही फ़ाइलें जिन्हें मैं रखता / सार्वजनिक करता / करती हूं वे कोडिग्नेटर की index.php और मेरी .htaccess फ़ाइल हैं:
RewriteEngine On
RewriteBase /
RewriteRule ^css/ - [L]
RewriteRule ^img/ - [L]
RewriteRule ^js/ - [L]
RewriteRule ^index.php(.*)$ - [L]
RewriteRule ^(.*)$ /index.php?/$1 [L]
आप अपने प्रोजेक्ट की डायरेक्टरी में सीएसएस फोल्डर को एसेस्ट फोल्डर के अंदर रख सकते हैं (आप इसे किसी भी नाम से)।
- ci_app
- application
- views
- assets
- css
- style.css
... जब आप किसी पृष्ठ में उस फ़ाइल को लोड करना चाहते हैं, तो आप इस तरह से base_url () फ़ंक्शन का उपयोग कर सकते हैं:
<head>
<link rel='stylesheet' href='<?php echo base_url();?>assets/css/style.css'>
</head>
और आप इस रूप में config.php फ़ाइल में अपनी परियोजना के base_url जोड़ना सुनिश्चित कर रहे हैं:
$config['base_url'] = 'http://localhost/ci_app';
नमस्ते हमारे स्टिररक्चर एप्लिकेशन, सिस्टम, user_guide की तरह है
सभी फ़ोल्डरों के पास एक फ़ोल्डर नाम की संपत्ति बनाएं और फिर इस संपत्ति फ़ोल्डर के अंदर सीएसएस और जावास्क्रिप्ट बनाएं और चित्र फ़ोल्डर आपके सभी सीएसएस जेएस को फ़ोल्डरों में डाल दें।
अब शीर्ष लेख पर जाएँ। सीपीपी और सीएसएस को इस तरह से कॉल करें।
<link rel="stylesheet" href="<?php echo base_url();?>assets/css/touchTouch.css">
<link rel="stylesheet" href="<?php echo base_url();?>assets/css/style.css">
<link rel="stylesheet" href="<?php echo base_url();?>assets/css/camera.css">
link_tag()
सहायक स्पष्ट रूप से जिस तरह से यह करने के लिए है। अपना css उस जगह पर रखें जहाँ वह आमतौर पर site_root / css / में होता है और फिर सहायक का उपयोग करता है:
echo link_tag('css/mystyles.css');
उत्पादन
<link href="http://example.com/css/mystyles.css" rel="stylesheet" type="text/css" />