উত্তর:
আমার এই মত একটি সেটআপ আছে:
তারপরে আমার একটি সহায়ক ফাংশন রয়েছে যা কেবলমাত্র আমার সেটআপের উপর নির্ভর করে এর পুরো পথটি ফিরে দেয়, এর মতো কিছু:
আবেদন / সাহায্যকারী / utility_helper.php:
function asset_url(){
return base_url().'assets/';
}
আমি সাধারণত একই ফাইলে সাধারণ রুটিনগুলি রাখব এবং কোডিগিনেটরের অটোলোড কনফিগারেশনের মাধ্যমে এটি অটোল্যাড করব।
দ্রষ্টব্য:
base_url()
অ্যাক্সেসের জন্য অটোল্যাড ইউআরএল সহায়ক ।
আবেদন / কনফিগ / autoload.php:
$autoload['helper'] = array('url','utility');
তারপরে asset_url()
আপনার নিজের কোড জুড়ে অ্যাক্সেস থাকবে ।
$autoload['helper'] = array('url', 'utility');
না, ভিউ ফোল্ডারের ভিতরে ভাল নেই not
চেহারা: আপনার প্রকল্পে অবশ্যই 3 টি বেসিক ফোল্ডার থাকতে হবে:
সিস্টেম // এই সিআই কাঠামো এই ফাইলগুলি স্পর্শ করার খুব বেশি কারণ নেই
আবেদন // এই হল যেখানে আপনার যুক্তিবিজ্ঞান যায়, ফাইল যে প্রয়োগ ঘটাতে সাহায্য করে ,
সর্বজনীন // এটি আপনার ডকুমেন্টরোট হতে হবে
সুরক্ষার কারণে আপনার কাঠামো এবং অ্যাপ্লিকেশনটিকে আপনার ডকুমেন্টরোটের বাইরে রাখা ভাল (জনসাধারণের এইচটিএমএল, এইচটিডোকস, পাবলিক, www ... ইত্যাদি)
আপনার সর্বজনীন ফোল্ডারের অভ্যন্তরে, আপনার জনসাধারণের তথ্য, ব্রাউজারগুলি কী দেখতে পাবে, ফোল্ডারগুলি সন্ধান করার জন্য এটি সাধারণ বিষয় হওয়া উচিত: চিত্র, জেএস, সিএসএস; সুতরাং আপনার কাঠামো হবে:
|- system/
|- application/
|---- models/
|---- views/
|---- controllers/
|- public/
|---- images/
|---- js/
|---- css/
|---- index.php
|---- .htaccess
public
একই নামে কোনও ফোল্ডার যুক্ত করতে কোনও সমস্যা আছে।
.htaccess
সরিয়ে ফেলা /index.php?
এবং কল করার জন্য এটি তৈরি করছেbase_url().'public/yourfolder';
আমি এইভাবে জনসাধারণের সম্পদগুলি পরিচালনা করি। এখানে আমি ফ্যালকন পিএইচপি'র বুটস্ট্র্যাপ পদ্ধতি ব্যবহার করি ।
|-.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]"
।
আমি সাধারণত আমার মতো সমস্ত ফাইল অ্যাপ্লিকেশন রুটে একটি "সম্পদ" ফোল্ডারে রেখেছি এবং তারপরে আমার কাছে সেই ফাইলগুলিতে ইঙ্গিত করার জন্য একটি অ্যাসেটহেল্পার ব্যবহার করা নিশ্চিত করে নিই । কোডআইগনিটার এটাই পরামর্শ দেয়।
কেউই বলে না যে আপনাকে .htacces সংশোধন করতে হবে এবং পুনর্লিখন শর্তে ডিরেক্টরি যুক্ত করতে হবে। আমি "সিস্টেম", "অ্যাপ্লিকেশন", "সূচক। পিএফপি" এর পাশাপাশি মূল ডিরেক্টরিতে একটি "পাবলিক" ডিরেক্টরি তৈরি করেছি। এবং এইভাবে .htaccess ফাইলটি সম্পাদনা করে:
RewriteCond $1 !^(index\.php|public|robots\.txt)
এখন আপনাকে কেবল কল <?php echo base_url()."/public/yourdirectory/yuorfile";?>
করতে হবে আপনি নিজের পছন্দ মতো "পাবলিক" দির ভিতরে উপ-ডিরেক্টরিটি যুক্ত করতে পারেন।
আপনি যেখানে সিএসএস ফাইল রেখেছেন তা নির্বিশেষে আপনি কেবল কোডইগনিটার "এইচটিএমএল" সহায়ক যা লিংক_ট্যাগ () নামে ব্যবহার করতে পারেন। আপনি এই সহায়কটিকে এরকম কিছু প্রয়োগ করবেন:
echo link_tag('folder/subfolder/stylesheet.css');
সিএসএস ফাইল সর্বাধিক উপযুক্ত স্থানে (আপনার মতে) সনাক্ত করা আপনার উপর নির্ভর করবে। এটিতে আপনাকে "এইচটিএমএল" সহায়কটি স্বয়ংক্রিয়ভাবে চালনা করতে হবে বা আলাদাভাবে এটিকে লোড করতে হবে।
লোকেরা এটি অর্জনের জন্য বেস_আরল () ব্যবহারের পরামর্শ দিচ্ছে তবে এটি আসলে "কোডআইগনিটার" করার উপায় নয় (আমার মনে হয় এই প্রশ্নের কয়েকটি অনুলিপি রয়েছে)। এটি কাজ করবে তবে ফ্রেমওয়ার্ক ব্যবহারের অন্যতম কারণ হ'ল এর মধ্যে প্রাক-তৈরি ফাংশনগুলি ব্যবহার করা।
এই ধরণের কাজটি করার জন্য কোডিগনেটারে অনেক সহায়ক রয়েছে।
একটি ফোল্ডার যেকোন নাম যেমন সার্বজনিক যোগ করুন এবং 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>
আমি নিম্নলিখিত ফোল্ডার কাঠামো ব্যবহার:
application
system
static
admin
js
css
images
public
js
css
images
uploads
original
thumbs
(আমি কোডইনজিটারে নতুন, তাই আমি জানি না এটি সেরা পরামর্শ কিনা)
আমি আমার সর্বজনীন ফোল্ডারে সর্বজনীনভাবে উপলব্ধ ফাইলগুলি রাখি। তাদের উপস্থিতিটি যৌক্তিক এবং আমি কোডইনিটারকে এমন কিছু ব্যবহার করতে চাই না যার জন্য এটি ব্যবহার করার দরকার নেই।
ডিরেক্টরি গাছ দেখতে পছন্দ করে:
আমি / পাবলিক / এ রাখি কেবলমাত্র ফাইলগুলি হ'ল কোডাইনিটারের সূচি.পি.পি., এবং আমার .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
... আপনি যখন কোনও পৃষ্ঠায় সেই ফাইলটি লোড করতে চান, আপনি बेस_url () ফাংশনটি এভাবে ব্যবহার করতে পারেন:
<head>
<link rel='stylesheet' href='<?php echo base_url();?>assets/css/style.css'>
</head>
এবং আপনার প্রকল্পের বেস_আরএলটি কনফিগারেশন.এফপি ফাইলটিতে যুক্ত করার বিষয়ে আপনি নিশ্চিত হন:
$config['base_url'] = 'http://localhost/ci_app';
হাই আমাদের স্ট্রুচারটি অ্যাপ্লিকেশন, সিস্টেম, ইউজার_গাইডের মতো
সমস্ত ফোল্ডারের কাছেই একটি ফোল্ডারের নাম সম্পদ তৈরি করুন এবং তারপরে এই সম্পদ ফোল্ডারের ভিতরে সিএসএস এবং জাভাস্ক্রিপ্ট এবং চিত্র ফোল্ডার তৈরি করুন আপনার সমস্ত সিএসএস জেএসএস ফোল্ডারগুলিকে অন্তর্ভুক্ত করুন
এখন হেডার.এফপি এ যান এবং সিএসএসকে ঠিক এভাবে কল করুন।
<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()
সাহায্যকারী পরিষ্কারভাবে এই করতে হয়। আপনার সিএসএসটি যেখানে সাধারণত থাকে সেখানে সাইট_রোট / সিএসএস / এ রাখুন এবং তারপরে সহায়কটি ব্যবহার করুন:
থেকে CodeIgniter ডক্স ...
echo link_tag('css/mystyles.css');
আউটপুট
<link href="http://example.com/css/mystyles.css" rel="stylesheet" type="text/css" />