Đường dẫn tương đối và tuyệt đối trong lập trình

Khi lập trình việc thiết lập đường dẫn đến các file, các thư mục là không thể thiếu, có hai cách thiết lập bằng đường dẫn tuyệt đối và đường dẫn tương đối, tùy từng trường hợp mà sử dụng cho hợp lý.
  • 09:13 03/12/2016
  • Kỳ Nhân
  • 0 Bình luận
  • 1245

- Đường dẫn tương đối và đường dẫn tuyệt đối là gì? Có quan trọng gì trong việc thiết kế website, các bạn theo dõi phần dưới

- Để cho các bạn dễ hiểu, mình làm một dự án ví dụ theo thư mục bên dưới. Như vậy nếu dư án chạy ở localhost thì đường dẫn để hiện là localhost/du_an/ còn chạy trên tên miền thì đường dẫn sẽ là tenmien

  • du_an (folder)
  • == index.php
  • == top.php
  • == contents.php
  • == footer.php
  • == css (folder)
  • ==== style.css
  • ==== test
  • ====== test.php
  • == images (folder)
  • ==== bg.png

- Đường dẫn tương đối trong lập trình

- Cú pháp hàm include() trong lập trình.

include('duong_dan_file');

- Cú pháp hàm chèn css trong html

<link href="duong_dan_file">

- Ví dụ lấy hai hàm trên. Từ fie index.php muốn include file top.php, contents.php, footer.php vào thì làm thế nào ?

include('top.php');
include('contents.php');
include('footer.php');

Nhìn vào cây thư mục trên. Do file top.php, contents.php, footer.php cùng thư mục với file index.php nên đường dẫn sẽ như phần code bên trên.

- Vậy muốn chèn file style.css thì sao? ta quan sát cây thư mục, thấy file style.css nằm trong folder css, và folder css nằm cùng với file index.php. Vậy đường dẫn tương đối sẽ là css/style.css. Do là file css nên ta dùng hàm link, tuy nhiên đường dẫn áp dụng như hàm include

<link href="css/style.css">

- Như vậy qua một folder chỉ cần thêm dấu / vào và chỉ tên folder là được. Vậy thử chèn file test.php trong folder test và nằm trong folder css sẽ là

include('css/test/test.php');

- Vậy từ file test.php muốn chèn file style.css thì phải làm thế nào ? Xem cây thư mục ta thấy file style.css nằm cùng với thư mục test, và nằm ngoài file test.php một folder hay gọi là một cấp. Để trở về cấp trước đó ta dùng đấu 2 chấm là ../. Hàm chèn css ở file test.php

<link href="../style.css">

Cứ ở ngoài một cấp ta dùng một dấu ../ hai cấp thì hai dấu. Ví dụ từ file test.php ta chèn file footer.php. Nhìn vào cây thư mục ta thấy muốn ra tới file footer.php thì phải qua hai cấp là test và css. Vậy đường dẫn tại file test.php sẽ là

include('../../footer.php');

- Lợi ích đường dẫn tương đối mang lại là khi bạn di chuyển dự án đến đâu thì đường dẫn vẫn đúng. Tóm lại cách thiết lập đường dẫn tương đối thì nếu nhỏ cấp hơn chỉ việc /ten_folder thôi, còn lớn cấp hơn thì ../

- Đường dẫn tuyệt đối trong lập trình

Cũng có tác dụng chỉ đến file cần thiết, tuy nhiên đường dẫn tuyệt đối không cần xác dịnh cấp trả về, ta chỉ xác nhận cấp từ trên xuống. Ví dụ đường dẫn đến file footer.php ở dự án trên tại localhost sẽ là

include('htt://locahost/du_an/footer.php');

File test.php sẽ là

include('htt://locahost/du_an/css/test/footer.php');

- Dù ở bất kỳ file nào muốn chèn file khác, dường dẫn vẫn y chang nhau, không cần xác nhận cấp. Như muốn chèn file test.php ở file index.php ta dùng hàm trên, chèn ở file footer.php ta cũng dùng hàm trên.

- Lợi ích đường dẫn tuyệt đối mang lại giúp chúng ta không cần tốn công xác định đường dẫn, thứ cấp folder, file trong dự án, tuy nhiên khi bị di chuyển thì các đường dẫn bị lỗi hết, không như đường dẫn tương đối

- Tóm lại đường dẫn tương đốiđường dẫn tuyệt đối có nhiều cách ứng dụng. Tùy các bạn thích ứng dụng thế nào? Tuy nhiên nếu các bạn học tập trên localhost nên sài đường dẫn tương đối, còn trên domain thì có thể sài đường dẫn tuyệt đối, hoặc sử dụng cả hai.