برخی از خطاهای رایج کد ایگنایتر

حنما تا به حال پیش آمده که به برخی از خطاهای رایج کد ایگنایتر برخورده باشید به همین منظور ما به سراغ یک سری خطاهای رایج در کد ایگنایتر می رویم وآنها را بررسی می کنیم و راهکار حل مشکل را بررسی می کنیم.

مشکل The requested URL was not found

اولین گام باید شما شناخت کامل از سرورتان  داشته باشید در واقع باید کد ایگنایتر را طبق ماژول های سیستمتان تنظیم کنید.یکی از این کانفیگها ماژول RewriteEngine می باشد در صورتی که این ماژول فعال می باشد باید فایل .htaccess  خود را به صورت زیر مقدار دهی نمایید .

 

RewriteEngine on
RewriteCond $1 !^(index\.php|public|\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1

معمولا در صورت برخود با مشکل The requested URL was not found با تنظیم فایل htaccess به صورت بالا این مشکل حل می شود.

 

عدم بارگزاری فایلهای css و جاوا اسکریپت در کد ایگنایتر

ابتدا به شما پیشمهاد می شود تمامی فایلهای css و جاوا اسکریپتتان را در به صورت یک پاره ار یک سری فایل متحد بارگزاری نماید به طور مثال در شاخه _ApP_MaIn/views/assets . بعضی اوقات می شود که فایل شما بارگزاری نمی شود و در واقع با خطای عدم دسترسی  (access denied) مواجه می شوید که ابتدا بهتر است دسترسی فایل را بررسی نمایید مخصوصا در سیستم عامل لینوکس حتما چک کنید فایلهای شما قابل دسترسی باشند و درگام بعد در پوشه کلی درواقع جایی که فایلهای جاوا اسکریپت و css می باشد فایل htaccess را ساخته و به صورت زیر مقدار دهی می کنیم.

<IfModule authz_core_module>
    Require all granted
</IfModule>
<IfModule !authz_core_module>
    Allow from all
</IfModule>

 

پیشنهاد پیرو برای شما :   کنترلرها (Controllers) در کد ایگنایتر

 

 داینامیک ساختن مسیریابی برای تمامی هاستها

یکی از مواردی که معمولا کاربر را درگیر خود می کند در کد ایگنایتر عدم توانایی تشخیص اتوماتیک baseurl() و siteurl() است در واقع شما برای هر جایی که بخواهید از برنامه کدایگنایتر استفاده نمایید نیاز است وارد کد فایل config شوید و baseurl را بسته به هاست و سایت خود تغییر دهید ولی بایک تغییر بسیار راحت می توانید بدون نیاز به تغییری برنامه هایتان را در جاهای مختلف اجرا نمایید .

وارد پوشه config شوید و فایل config.php را تغییر دهید .

انتدا همانگونه که می بینید مقدار base url خالی است ولی ممکن است مقداری ثابت داشته باشد بنابراین خط زیر را با کد اصلاح شده جایگزین می کنیم

//$config['base_url'] = '';
$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
$config['base_url'] .= "://".$_SERVER['HTTP_HOST'];
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);

همانگونه که می بینید خط اول را در حالت توضیح قرار می دهیم مابقی کدها را اضافه می کنیم .