أين يجب أن تذهب الأصول في مشروع كود إغنيتر؟
-
05-07-2019 - |
سؤال
وأنا بدأت للتو مع كود إغنيتر، وأنا لست متأكدا من أين أشياء مثل المغلق، شبيبة، والصور يجب ان تذهب. خارج مجلد النظام برمته يبدو طيب، ولكن هذا يعني كل شيء منفصلة. داخل يعني أن فيليباثس تكون أطول، وأنا قلقة أنه قد افساد الامور. ما هو أفضل الممارسات بشأن هذه المسألة؟
المحلول
وعادة أضع المجلدات منفصلة في مستوى الجذر، لذلك أنا في نهاية المطاف مع بنية دليل مثل هذا:
/system
/css
/js
/img
ويبدو أن العمل بالنسبة لي - عند استخدام site_url(url)
، وURL فإنه يولد هو من جذورها، بحيث يمكنك استخدام site_url('css/file.css')
لتوليد عناوين لصفحات الأنماط الخاصة بك وغيرها
نصائح أخرى
وشخصيا، أنا مزق الدليل application
من الدليل system
وجعلها أخ لsystem
. وبعد ذلك إنشاء دليل المشروع في public_html (www)
حيث أنتقل index.php وتخزين الأصول العامة بلدي.
لنفترض المشروع الذي نعمل على ما يسمى projekt
. في الدليل الأصل إلى public_html (www)
خلق دليل يسمى CISYSTEM
، وداخل هذا الدليل إنشاء الدليل من الإصدار الذي تستخدمه، 202
، 210
الخ.
/CISYSTEM
/202
/210
/another_CI_version
/projekt_application
/models
/views
/controllers
/private_assets
/public_html
/projekt
index.php
.htaccess
css
img
js
lib
وجمال هذا بنية الدليل هو أنها تضيف طبقة أخرى من الأمن ويجعل من القتلى سهلة لرفع مستوى / مبادلة خارج الأساسية CI الخاص بك. بالاضافة الى ذلك، أنت ليس من المفترض لإجراء تغييرات على جوهر - وجود دليل واحد حيث يتم تخزين الأساسية الخاصة بك، وبعد كل المشروعات المرجعية وتبقي الامور DRY
وهذا كله خلط دليل يتطلب منك تغيير مسار عدد قليل من الأشياء بالرغم من ذلك. لحسن الحظ، كود إغنيتر يجعل من السهل - كل التغييرات التي يمكن إدخالها في ملف index.php
فتح index.php
وإعادة توجيه بضعة أشياء:
والتغيير: $system_path = 'system';
ل: $system_path = '../../CISYSTEM/210';
والتغيير: $application_folder = 'application';
ل: $application_folder = '../../projekt_application';
وبالإضافة إلى ذلك، أرى الكثير من الناس يتحدثون عن استخدام site_url()
في إجابات أخرى. أوصي وسيلة أقل مطول استخدام site_url()
... لم يكن لديك أن نسميها في كل مرة إذا كنت الاستفادة من عنصر <base>
HTML ل:
و<base href="<?= site_url();?>">
وتشمل فقط أنه في <head>
التطبيق الخاص بك ويمكنك الاتصال حدات التحكم الخاصة بك مباشرة ... كما في:
و<a href='controllername/functionname'>Some Action</a>
وهتاف
وأنا أكره وجود الكثير من الدلائل على مستوى الجذر، ولذا فإنني استخدام / العامة واستخدام هتكس إعادة كتابة / مخطوطات ل/ الجمهور / مخطوطات وهلم جرا.
وأجد أنه من الأفضل للحفاظ على الأصول على مستوى الجذر. يمكنك استخدام <?=base_url()?>
أن أردد الجذر الكامل للموقع. في ملف التكوين، تقوم بإعداد جذر الموقع. هذا البيان فقط يردد ما بها.
وبسبب هذا، يمكنك استخدام يتضمن مثل هذا:
<link href="<?=base_url()?>/css/style.css" rel="stylesheet" type="text/css" />
وفي أي مكان في التعليمات البرمجية الخاصة بك، وسوف لا يزال الحصول على http://example.com/css/style . المغلق .
وBASE_URL () / المغلق / name.css
ولكي تتمكن من استخدام المساعد SITE_URL (رابط) في هذه الطريقة التي يجب أولا تكوين أباتشي mod_rewrite و(أو ما يعادلها) لإزالة جزء index.php من URI.
وإلا يضيف طريقة SITE_URL index.php إلى URL التي من المرجح أن المسمار المسارات إلى الأصول الخاصة بك إذا كنت قد حصلت عليها في دليل قاعدة مثل أعلاه.
وفيما يلي الوثائق كود إغنيتر على إزالة index.php من URI: