আমি কোডইনিটারে ইমেজ ফাইল, সিএসএস, জেএস, ইত্যাদি কোথায় রাখি?


144

সিএসএস ফোল্ডার এবং ইমেজ ফাইল ফোল্ডার স্থাপন করা কোথায় গ্রহণযোগ্য? আমি ভিউ ফোল্ডারের ভিতরে ভাবছিলাম? তবে নিয়ামক সর্বদা বেস ইউআরএলটিতে পাথটি পুনরায় সাজান যাতে আমি .html ফাইলটিতে যেখানে এটি বসা হয় সেখানে পথটি নির্দিষ্ট করতে হবে, যা অনর্থক।

উত্তর:


202

আমার এই মত একটি সেটআপ আছে:

  • আবেদন
  • পদ্ধতি
  • সম্পদ
    • JS
    • imgs
    • CSS

তারপরে আমার একটি সহায়ক ফাংশন রয়েছে যা কেবলমাত্র আমার সেটআপের উপর নির্ভর করে এর পুরো পথটি ফিরে দেয়, এর মতো কিছু:

আবেদন / সাহায্যকারী / utility_helper.php:

function asset_url(){
   return base_url().'assets/';
}

আমি সাধারণত একই ফাইলে সাধারণ রুটিনগুলি রাখব এবং কোডিগিনেটরের অটোলোড কনফিগারেশনের মাধ্যমে এটি অটোল্যাড করব।

দ্রষ্টব্য: base_url()অ্যাক্সেসের জন্য অটোল্যাড ইউআরএল সহায়ক ।

আবেদন / কনফিগ / autoload.php:

$autoload['helper'] = array('url','utility');

তারপরে asset_url()আপনার নিজের কোড জুড়ে অ্যাক্সেস থাকবে ।


1
হাই এডি, আমি ভাবছি আপনি কোথায় আপনার ফাংশন কোডটি রেখেছেন .. আমি কি এটি ফাইল_হেল্পার.পিএপি রাখি?
কেবিয়াং

3
হাই @ কেবিয়াংব্লবলা আমি আমার উত্তরটি আরও কিছু তথ্য দিয়ে আপডেট করেছি যা আপনাকে সহায়তা করবে should
এডি

10
'বেসুরল ()' এ অ্যাক্সেস পাওয়ার জন্য আপনাকে এই জাতীয় 'ইউআরএল' সহায়তাও অন্তর্ভুক্ত করতে হবে:$autoload['helper'] = array('url', 'utility');
জেফ্রি

ওয়েল রুটে আপনার সম্পত্তি ফোল্ডার (খনিটি পাবলিক_এইচটিএমএল) ফোল্ডারে এবং তারপরে ওয়েবের মূলের উপরে একটি ডিরেক্টরিতে সিআই থাকা আরও ভাল।
নাট নোলটিং

3
অন্যরা যদি আমার মতো হয় তবে স্পষ্ট করার জন্য, আপনি এটির মতো << = অ্যাসেট_আরল ();?> সিএসএস / সিএসএসএসএসএস
জোন ইয়র্ক

50

না, ভিউ ফোল্ডারের ভিতরে ভাল নেই not

চেহারা: আপনার প্রকল্পে অবশ্যই 3 টি বেসিক ফোল্ডার থাকতে হবে:

সিস্টেম // এই সিআই কাঠামো এই ফাইলগুলি স্পর্শ করার খুব বেশি কারণ নেই

আবেদন // এই হল যেখানে আপনার যুক্তিবিজ্ঞান যায়, ফাইল যে প্রয়োগ ঘটাতে সাহায্য করে ,

সর্বজনীন // এটি আপনার ডকুমেন্টরোট হতে হবে

সুরক্ষার কারণে আপনার কাঠামো এবং অ্যাপ্লিকেশনটিকে আপনার ডকুমেন্টরোটের বাইরে রাখা ভাল (জনসাধারণের এইচটিএমএল, এইচটিডোকস, পাবলিক, www ... ইত্যাদি)

আপনার সর্বজনীন ফোল্ডারের অভ্যন্তরে, আপনার জনসাধারণের তথ্য, ব্রাউজারগুলি কী দেখতে পাবে, ফোল্ডারগুলি সন্ধান করার জন্য এটি সাধারণ বিষয় হওয়া উচিত: চিত্র, জেএস, সিএসএস; সুতরাং আপনার কাঠামো হবে:

|- system/
|- application/
|---- models/
|---- views/
|---- controllers/
|- public/
|---- images/
|---- js/
|---- css/
|---- index.php
|---- .htaccess

1
পাবলিক ফোল্ডারে ইনডেক্স.এফপি কি? যে 404 ফাইল? ধন্যবাদ
ডেল

বিলম্বের জন্য দুঃখিত, তবে লো এর জন্য: টিডেক্স.পিএফপি ফাইলটি এমন ফাইল হবে যা অনুরোধটি ধরবে এবং বাকী ফ্রেমওয়ার্কটি কল করবে।
জুয়ান জো

@ জুয়ান জো .. আমি কোডইগিনিটার -৩.০..6 ব্যবহার করছি named আমি নামের কোনও ফোল্ডার খুঁজে পাচ্ছি না same publicএকই নামে কোনও ফোল্ডার যুক্ত করতে কোনও সমস্যা আছে।
আখিল বিজয়

অখিলভিজয় আপনি এটি আপনার কোডইগিনিটার ফোল্ডারে খুঁজে পাবেন না, ফোল্ডারটি যখন আপনি কোনও সার্ভারে স্থাপন করবেন তখন
আনোয়ার হোসেন

কোডইনজিটারের সাথে কাজ করার সর্বোত্তম উপায় যা এর মাধ্যমে সরকারী ফোল্ডারটি .htaccessসরিয়ে ফেলা /index.php?এবং কল করার জন্য এটি তৈরি করছেbase_url().'public/yourfolder';
রবার্ট ব্লাসকো ভিলার্রোয়া

16

আমি এইভাবে জনসাধারণের সম্পদগুলি পরিচালনা করি। এখানে আমি ফ্যালকন পিএইচপি'র বুটস্ট্র্যাপ পদ্ধতি ব্যবহার করি ।

ফোল্ডার কাঠামো

|-.htaccess*
|-application/
|-public/
  |-.htaccess**
  |-index.php***
  |-css/
  |-js/
  |-img/
  |-font/
  |-upload/
|-system

সম্পাদনা করার জন্য ফাইল

  1. .htaccess*

    প্রকল্পটির সমস্ত অনুরোধগুলি নথিটিকে মূল হিসাবে তৈরি করে সর্বজনীন / ডিরেক্টরিতে পুনরায় লেখা হবে । এই পদক্ষেপটি নিশ্চিত করে যে অভ্যন্তরীণ প্রকল্পের ফোল্ডারগুলি জনসাধারণের দেখার থেকে গোপন থাকবে এবং এই জাতীয় সুরক্ষা হুমকিকে দূর করে। - ফ্যালকনপ্প ডক

    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteRule  ^$ public/    [L]
        RewriteRule  (.*) public/$1 [L]
    </IfModule>
  2. .htaccess**

    বিধিগুলি অনুরোধ করা ফাইল উপস্থিত রয়েছে কিনা তা যাচাই করবে এবং যদি তা থাকে তবে এটি ওয়েব সার্ভার মডিউল দ্বারা নতুন করে লিখতে হবে না। - ফ্যালকনপ্প ডক

    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php/$1 [QSA,L]
    </IfModule>
  3. 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]"
কেরকচ

12

আমি সাধারণত আমার মতো সমস্ত ফাইল অ্যাপ্লিকেশন রুটে একটি "সম্পদ" ফোল্ডারে রেখেছি এবং তারপরে আমার কাছে সেই ফাইলগুলিতে ইঙ্গিত করার জন্য একটি অ্যাসেটহেল্পার ব্যবহার করা নিশ্চিত করে নিই । কোডআইগনিটার এটাই পরামর্শ দেয়।


7

কেউই বলে না যে আপনাকে .htacces সংশোধন করতে হবে এবং পুনর্লিখন শর্তে ডিরেক্টরি যুক্ত করতে হবে। আমি "সিস্টেম", "অ্যাপ্লিকেশন", "সূচক। পিএফপি" এর পাশাপাশি মূল ডিরেক্টরিতে একটি "পাবলিক" ডিরেক্টরি তৈরি করেছি। এবং এইভাবে .htaccess ফাইলটি সম্পাদনা করে:

RewriteCond $1 !^(index\.php|public|robots\.txt)

এখন আপনাকে কেবল কল <?php echo base_url()."/public/yourdirectory/yuorfile";?> করতে হবে আপনি নিজের পছন্দ মতো "পাবলিক" দির ভিতরে উপ-ডিরেক্টরিটি যুক্ত করতে পারেন।


আমি এক হাজার কোটি বছর দেরী হয়েছি, তবে যদি কেউ এটি পড়তে থাকে তবে এই উত্তরটি আমার প্রাথমিক সমাধান ছিল, তবে আপনি যদি ভার্চুয়াল হোস্টের মাধ্যমে অ্যাক্সেস পরিচালনা করছেন তবে আমার মনে হয় ভার্চুয়াল হোস্টটিকে পাবলিক ফোল্ডারে দেখানো এবং রাখা আরও ভাল ধারণা is .htaccess কনফিগারেশন। যাইহোক আপভোট করুন কারণ এই উত্তরটি আমাকে সমাধানের দিকে নির্দেশ করে
Vertig0

5

আপনি যেখানে সিএসএস ফাইল রেখেছেন তা নির্বিশেষে আপনি কেবল কোডইগনিটার "এইচটিএমএল" সহায়ক যা লিংক_ট্যাগ () নামে ব্যবহার করতে পারেন। আপনি এই সহায়কটিকে এরকম কিছু প্রয়োগ করবেন:

echo link_tag('folder/subfolder/stylesheet.css');

সিএসএস ফাইল সর্বাধিক উপযুক্ত স্থানে (আপনার মতে) সনাক্ত করা আপনার উপর নির্ভর করবে। এটিতে আপনাকে "এইচটিএমএল" সহায়কটি স্বয়ংক্রিয়ভাবে চালনা করতে হবে বা আলাদাভাবে এটিকে লোড করতে হবে।

লোকেরা এটি অর্জনের জন্য বেস_আরল () ব্যবহারের পরামর্শ দিচ্ছে তবে এটি আসলে "কোডআইগনিটার" করার উপায় নয় (আমার মনে হয় এই প্রশ্নের কয়েকটি অনুলিপি রয়েছে)। এটি কাজ করবে তবে ফ্রেমওয়ার্ক ব্যবহারের অন্যতম কারণ হ'ল এর মধ্যে প্রাক-তৈরি ফাংশনগুলি ব্যবহার করা।

এই ধরণের কাজটি করার জন্য কোডিগনেটারে অনেক সহায়ক রয়েছে।


4

একটি ফোল্ডার যেকোন নাম যেমন সার্বজনিক যোগ করুন এবং 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>

4

আমি কোডআইগনিটার 3.1.0 এর সর্বশেষতম সংস্করণটি ব্যবহার করছি। এর ফোল্ডার কাঠামোটি হ'ল:

  • পদ্ধতি
  • আবেদন
  • user_guide
  • সম্পদ
    • চিত্র
    • JS
    • CSS

এইখানে আপনার সম্পত্তি ফোল্ডারের ভিতরে চিত্র, সিএসএস এবং জেএস ফাইলগুলি রাখা উচিত।


3

আমি নিম্নলিখিত ফোল্ডার কাঠামো ব্যবহার:

application 
system 
static
    admin
        js
        css
        images
    public
        js
        css
        images
    uploads
        original
        thumbs

2

(আমি কোডইনজিটারে নতুন, তাই আমি জানি না এটি সেরা পরামর্শ কিনা)

আমি আমার সর্বজনীন ফোল্ডারে সর্বজনীনভাবে উপলব্ধ ফাইলগুলি রাখি। তাদের উপস্থিতিটি যৌক্তিক এবং আমি কোডইনিটারকে এমন কিছু ব্যবহার করতে চাই না যার জন্য এটি ব্যবহার করার দরকার নেই।

ডিরেক্টরি গাছ দেখতে পছন্দ করে:

  • / আবেদন /
  • / সর্বজনীন /
  • / সর্বজনীন / সিএসএস /
  • / সর্বজনীন / চিত্র /
  • / সর্বজনীন / JS /
  • /পদ্ধতি/

আমি / পাবলিক / এ রাখি কেবলমাত্র ফাইলগুলি হ'ল কোডাইনিটারের সূচি.পি.পি., এবং আমার .htaccess ফাইল:

RewriteEngine On
RewriteBase /

RewriteRule ^css/ - [L]
RewriteRule ^img/ - [L]
RewriteRule ^js/ - [L]

RewriteRule ^index.php(.*)$ - [L]
RewriteRule ^(.*)$ /index.php?/$1 [L]

2

আপনি আপনার প্রকল্পের ডিরেক্টরিতে এস্যাসেট ফোল্ডারের ভিতরে সিএসএস ফোল্ডারটি (আপনি এটির কোনও নাম রাখবেন) রাখতে পারেন:

- 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';

0

হাই আমাদের স্ট্রুচারটি অ্যাপ্লিকেশন, সিস্টেম, ইউজার_গাইডের মতো

সমস্ত ফোল্ডারের কাছেই একটি ফোল্ডারের নাম সম্পদ তৈরি করুন এবং তারপরে এই সম্পদ ফোল্ডারের ভিতরে সিএসএস এবং জাভাস্ক্রিপ্ট এবং চিত্র ফোল্ডার তৈরি করুন আপনার সমস্ত সিএসএস জেএসএস ফোল্ডারগুলিকে অন্তর্ভুক্ত করুন

এখন হেডার.এফপি এ যান এবং সিএসএসকে ঠিক এভাবে কল করুন।

<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"> 

-2

link_tag()সাহায্যকারী পরিষ্কারভাবে এই করতে হয়। আপনার সিএসএসটি যেখানে সাধারণত থাকে সেখানে সাইট_রোট / সিএসএস / এ রাখুন এবং তারপরে সহায়কটি ব্যবহার করুন:

থেকে CodeIgniter ডক্স ...

echo link_tag('css/mystyles.css');

আউটপুট

<link href="http://example.com/css/mystyles.css" rel="stylesheet" type="text/css" />
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.