دلیل تغیر آدرس دهی های نسبی چیه؟

پرسیده شده
فعالیت 1458 روز پیش
دیده شده 923 بار
0

با شلام خدمت دوستان عزیز - سوالی که برام پیش اومد در ابتدا آدرس دهی در فایل tp-index (فایل ابتداییکه ui  اصلی بود ) فایل های css و  js آدرس دهی شده بودند . سپس این فایل به داخل فولدر Assets  انتقال پیدا کرد و با این کار آدرس دهی ها چون نسبی بود باید مشکل پیدا میکرد ؟؟؟

یا اینکه به خاطر اینکه  در داخل فایل index  اصلی  include شد آدرس ها نیز از همون فایل اصلی داده شدن چون تمامی فایل های دیگه include شده بودن ؟؟

چون چندین بار برای فایل های مختلف مانند ادرس دهی فیال ها در داخل init  هم این انفاق افتاد برام سوال شد --

پیشاپیش سپاس از دوستان

فایل پیوست

Hassan En
Hassan En

3 اردیبهشت 99

3

مورد تایید استاد

حذف شده

سلام. در مورد این جلسه، ادرس بندی فایل های assets که به این شکل بود assets/css/style.css و فایل css دقیقا توی همین مسیر قرار گرفته بود. ولی در مورد فایل init.php که اول در مسیر root پروژه قرار داشت و آدرس بندی برای مثال به این شکل بود: 

include "libs/helpers.php";

و چنتا اینکلود دیگه. و بعد که move شد به bootstrap شاید انتظار داشتین اینکلودها اینجوری آدرس دهی میشدن:

include "../libs/helpers.php";

این مسیردهی اشتباس و مسیردهی قبلی درسته چون فایل اجرا کننده ی این اسکریپت index.php هست و مسیر ها نسبت به index.php باید آدرس بندی بشن. باید به این نکته توجه کنید که تمام فایل های include ای به index.php اضافه میشن و در واقع انگار تمام کدها در یک صفحه یعنی index.php نوشته شده و دارن اجرا میشن.

با اینکلودها اومدیم نظم دادیم به صفحات وگرنه کدهای اینکلود شده در یک صفحه قرار دارن.

ادامه ی ویدیو این خط رو هم داریم داخل init.php:

<?php
include 'config.php';

چون دایرکتوری bootstrap قبلا در index.php اینکلود شده وگرنه به این شکل هم جواب میده: init.php

<?php
include 'bootstrap/config.php';

 

فایل پیوست

محسن موحد

توسط

محسن موحد

3 اردیبهشت 99

حذف شده
بسیار ممنونم -- پس کلا برای پروژه ها باید از همون آدرس دهی absolute در واقع استفاده کرد و نسبی آدرس نداد درسته ؟
Hassan En

6 اردیبهشت 99

حذف شده
راه مناسبتری هست set_include_path() (کارش مثل PATH ویندوز هست) و استفادش در کنار شی گرایی و autoloading
محسن موحد

6 اردیبهشت 99

1
حذف شده

سلام و احترام

برای فایل های اصلی پروژه که در هرجایی ممکن است استفاده شوند آن ها را در init آورده‌ایم و با پیشوند آدرس ثابته، این آدرس دهی را دقیق تر کرده ایم تا مشکلی در فراخوانی آن ها به وجود نیاد که این آدرس دهی با آن ثابته دقیقا از درایو C شروع می‌شود. 

اما برای آدرس دهی فایل های css , js به طور پیش فرض از آدرس root (ریشه اصلی) پروژه داده می‌شود و برای اینکه آدرس دهی به صورت دقیق تری انجام شود برای فایل های js و Css باید از url سایت استفاده کنیم که به درستی include بشوند.

فایل پیوست

امیر صالحی

توسط

امیر صالحی

3 اردیبهشت 99