Cách tạo đường dẫn tương đối. Mô tả đường dẫn: tuyệt đối, tương đối, UNC và URL

Khi phát triển một trang web, bạn thường phải chỉ định đường dẫn đến tệp, liên kết đến tài liệu và trang.
Trong sách về công nghệ máy tính Bạn thường có thể tìm thấy các thuật ngữ đường dẫn tuyệt đối và tương đối tới các tệp được sử dụng. Thường thì tác giả không giải thích ý nghĩa của một con đường cụ thể. Do đó, người đọc sẽ bối rối khi tác giả nói về việc sử dụng các đường dẫn tuyệt đối và/hoặc tương đối.
Giả sử bạn có một trang web và bạn cần tạo một siêu liên kết (liên kết) đến một trong các trang của trang web đó. Ở đây bạn cần chọn loại đường dẫn sẽ sử dụng: tương đối hoặc tuyệt đối.

Điều rất quan trọng là phải hiểu đâu là con đường cần thiết và cách sử dụng nó tốt nhất. Một đường dẫn tuyệt đối chỉ có thể được chỉ định theo một cách. Nhưng tương đối, không giống như tuyệt đối, có một số cách sử dụng.
Đọc thêm về cách thức và nơi nó được sử dụng tuyệt đối và đường dẫn tương đối vào tập tin, Hôm nay tôi sẽ cố gắng nói với bạn.

Vì tôi dành phần lớn thời gian của mình cho công nghệ web nên tôi sẽ đưa ra các ví dụ liên quan đến việc tạo trang web.

Đường dẫn tuyệt đối

Khi liên kết hoàn tất URL tệp hoặc các trang, thế thôi đường dẫn tuyệt đối. Trong trường hợp này, giao thức được sử dụng phải có trong địa chỉ. Ví dụ, http://www.trang web là đường dẫn tuyệt đối đến một trang web cụ thể. TRONG trong trường hợp nàyđường dẫn tuyệt đối đến trang chủ blog của tôi. Giao thức ở đâu http, MỘT www.trang web tên miền).

Ví dụ: nếu bạn chỉ định một liên kết đến một thư mục http://yourdomain.ua/web/ sau đó nó sẽ được tải (hiển thị) tập tin chỉ mục. Quy tắc này áp dụng chủ yếu cho các trang web tĩnh. Vì khi sử dụng ngôn ngữ lập trình có thể tạo định tuyến nội bộ. Tệp chỉ mục thường là một tập tin có tên chỉ mục.php, chỉ mục.html, chỉ mục.phtml, chỉ mục.shtml. Để sử dụng một tệp chỉ mục khác, bạn cần tạo một tệp có tên .htaccess trong thư mục mong muốn và viết một số lệnh trong đó. Việc sửa đổi và tạo tệp .htaccess cũng như định tuyến bằng ngôn ngữ lập trình nằm ngoài phạm vi của bài viết này.

Về cơ bản, đường dẫn tuyệt đối được sử dụng khi bạn cần liên kết đến một trang khác. Nói cách khác, nếu bạn muốn đưa khách truy cập đến một trang web khác, bạn cần sử dụng đường dẫn tuyệt đối. Mặc dù vậy, đường dẫn này có thể được sử dụng trên trang web của riêng bạn. Nhưng nhiều người tin rằng các liên kết trong một trang web chỉ mang tính chất tương đối.
Sử dụng đường dẫn tuyệt đối có thể gây ra một số vấn đề. Ví dụ: khi chuyển một trang web từ máy cục bộ sang máy chủ (điều này xảy ra nếu bạn đã sử dụng máy địa phươngđịa chỉ có dạng http://localhost/sitename.ua/...). Khó khăn có thể phát sinh khi có nhu cầu thay đổi tên miền (tên trang web). Mặc dù tất cả những khó khăn này đều có thể giải quyết được nhưng bạn sẽ phải dành chút thời gian cho chúng.
Có điểm trừ thì phải có điểm cộng. Hãy lấy ví dụ một tình huống như nội dung bị đánh cắp khỏi trang web của bạn. Trong thực tế, tôi đã nhiều lần bị thuyết phục rằng toàn bộ văn bản đã bị đánh cắp mà không để lại liên kết quay lại bản gốc. Vì vậy, khi sử dụng đường dẫn tuyệt đối, bạn có thể nhận được liên kết ngược từ trang web chứa nội dung bị đánh cắp. Nhưng điều này chỉ xảy ra nếu bạn có liên kết nội bộđã được thực hiện bằng cách sử dụng đường dẫn tuyệt đối. Mặc dù điều này không phải lúc nào cũng hiệu quả, nhưng tôi đã nhiều lần nhận thấy sự xuất hiện của các liên kết từ trang web của người khác nơi chứa nội dung của tôi.

Đào sâu một chút khỏi chủ đề, tôi muốn nói ngắn gọn về nó URL là gì.

Mỗi trang web hoặc tài liệu trên Internet đều có một địa chỉ duy nhất, được gọi là URL.
URL— một bộ định vị thống nhất (mã định danh vị trí) ​​của một tài nguyên. URL là viết tắt của Bộ định vị tài nguyên thống nhất. Bạn cũng có thể bắt gặp một giải mã như Universal Resource Locator (bộ định vị tài nguyên chung). Phương pháp viết địa chỉ này được tiêu chuẩn hóa trên Internet. Tổng quát hơn và hệ thống rộng Nhận dạng tài nguyên URI đang dần thay thế thuật ngữ URL.
URI- Cái này chuỗi ký tự, xác định một tài nguyên: tài liệu, tệp, v.v. Tất nhiên, điều này đề cập đến tài nguyên Internet.

Đường dẫn tương đối

Thông thường các đường dẫn tương đối được sử dụng thường xuyên hơn nhiều so với các đường dẫn tuyệt đối. Về cơ bản, một đường dẫn tương đối được chỉ định khi bạn cần đưa khách truy cập đến một trang khác trên trang web của mình hoặc chèn một đối tượng (ví dụ: hình ảnh) vào một trong các trang. Trong trường hợp này, việc sử dụng liên quan đến đường dẫn là khá hợp lý. Tùy thuộc vào cấu trúc của trang web, nó phụ thuộc vào dạng đường dẫn tương đối mà bạn cần sử dụng. Có hai loại đường dẫn tương đối: đường dẫn liên quan đến tài liệu, đường dẫn liên quan đến thư mục gốc của trang.

Đường dẫn liên quan đến tài liệu

Chính xác đường dẫn liên quan đến tài liệuđược sử dụng thường xuyên nhất. Những liên kết như vậy còn được gọi là liên kết cục bộ. Về cơ bản, đường dẫn này được sử dụng khi tài liệu (trang) hiện tại và liên quan nằm trong cùng một thư mục. Nếu bạn di chuyển tài liệu sang thư mục khác, đường dẫn (liên kết) sẽ phải được thay đổi. Mặc dù bạn cũng có thể liên kết đến các tài liệu (trang) từ các thư mục khác. Để thực hiện việc này, đường dẫn được ghi từ tài liệu hiện tại đến tài liệu đích (trang). Trong trường hợp này, đường dẫn liên quan đến tài liệu phải được đặt tùy thuộc vào cấu trúc thư mục.
Hãy lấy ví dụ cấu trúc đơn giản nhất trang web tĩnh.

Giả sử rằng mọi hình ảnh trong thư mục hình ảnh cần được chèn vào các trang thích hợp nhà.html, sản phẩm.html, liên hệ.htm tôi. Ví dụ: để chèn một hình ảnh vào trang “home.html”, bạn cần chỉ định đường dẫn chứa hình ảnh. Nếu bạn sử dụng một đường dẫn liên quan đến tài liệu, bạn sẽ cần phải viết nội dung sau vào mã trang:

Mã chèn hình ảnh trên trang này chưa đầy đủ. Vì nó không chứa một số thuộc tính quan trọng, chẳng hạn như chiều rộng, chiều cao, v.v. Thuộc tính src, ở đây dùng để chỉ đường dẫn đến tệp. Tất cả các thuộc tính khác đều bị bỏ qua ở đây vì hiện tại chúng không còn quan trọng nữa. Điều quan trọng bây giờ là bạn có ý tưởng về đường dẫn trông như thế nào so với tài liệu.
Khi sử dụng đường dẫn tương đối của tài liệu, phần đường dẫn tuyệt đối bị thiếu. Một phần của đường dẫn tuyệt đối bị cắt bớt ở đây, cho cả tài liệu (trang) hiện tại và tài liệu được liên kết. Ở đây chỉ sử dụng phần đường dẫn luôn thay đổi.
Hãy để tôi nhắc bạn một lần nữa rằng khi sử dụng đường dẫn liên quan đến tài liệu, bạn cần tính đến vị trí ban đầu của tệp.

Hãy tưởng tượng một tình huống trong đó trang sản phẩm.html, sẽ không nằm trong thư mục gốc của trang web (như trường hợp trong ví dụ trước), mà nằm trong thư mục con. Bây giờ bạn cần chèn hình ảnh vào file sản phẩm.html, nằm sâu hơn thư mục gốc của trang web.

Để chèn một hình ảnh vào một tập tin sản phẩm.html bạn cần quay lại thư mục gốc. Sau đó, bạn có thể sử dụng đường dẫn đã biết, vừa được đề cập ở trên.

Như bạn có thể thấy từ đoạn mã trên, đoạn mã sau đã được thêm vào đường dẫn: ../ . Chỉ có chuỗi ký tự này ../ và dùng để di chuyển một thư mục (cấp) cao hơn trong hệ thống phân cấp thư mục. Đường dẫn trong đoạn mã trên có thể được đọc như sau: “Vào một thư mục cao hơn (trở lại), đi tới thư mục hình ảnh và lấy tập tin từ đó sản phẩm.png«.
Nếu như ../ có nghĩa là di chuyển một thư mục (cấp) cao hơn trong hệ thống phân cấp thư mục, sau đó là ký hiệu / cho biết đang di chuyển xuống một cấp.
Chuỗi ký tự ../ có thể được sử dụng nhiều lần khi đang di chuyển. Ví dụ, nếu tập tin sản phẩm.html di chuyển vào ba thư mục lồng nhau, bạn sẽ cần sử dụng đoạn mã sau:

Như có thể thấy từ các ví dụ trước, sử dụng đường dẫn liên quan đến tài liệu trong nhiều trường hợp là hợp lý. Loại đường dẫn này thường được sử dụng trong thực tế và có thể áp dụng cho hầu hết mọi tình huống. Như tôi đã nói ở trên, cũng có một đường dẫn liên quan đến thư mục gốc của trang web, điều này sẽ được thảo luận bên dưới.

Đường dẫn liên quan đến thư mục gốc của trang web

Có thể bạn đã nhận ra rằng các đường dẫn liên quan đến tài liệu được sử dụng rất thường xuyên. Nhưng có một vấn đề khi sử dụng chúng. Đó là khi cấu trúc thư mục thay đổi thì đường dẫn cũng sẽ phải thay đổi.
Nhưng vấn đề này có thể được giải quyết bằng cách sử dụng đường dẫn liên quan đến thư mục gốc của trang web. Nơi đường dẫn được chỉ định từ thư mục gốc đến tài liệu.
Tất cả các đường dẫn liên quan đến thư mục gốc của trang đều bắt đầu bằng dấu / . Chỉ ở đây, không giống như các đường dẫn liên quan đến tài liệu, dấu hiệu này được sử dụng để biểu thị thư mục gốc. Bởi vì nó được sử dụng khi bắt đầu cuộc hành trình.
Đường dẫn liên quan đến thư mục gốc của trang cho phép bạn di chuyển một số tệp mà không làm hỏng các liên kết. Bạn chỉ có thể sử dụng loại đường dẫn này trên máy chủ web trên Internet hoặc trên máy chủ web nằm trên máy cục bộ.

Máy chủ web trên máy cục bộ có thể là . Điều này sẽ cho phép bạn tạo môi trường trên máy tính để tạo trang web và thử nghiệm trước chúng.

Đường dẫn tương đối gốc không chứa giao thức http, không có tên miền. Và như tôi đã nói, nó bắt đầu bằng việc chỉ ra biểu tượng / , trỏ đến thư mục gốc. Thư mục này thường chứa tệp chỉ mục trang chính.

Ví dụ, /images/products.png chỉ ra rằng tập tin sản phẩm.png nằm trong thư mục hình ảnh, nằm trong thư mục gốc.

Cách dễ nhất để xác định đường dẫn tương đối gốc là lấy đường dẫn tuyệt đối và loại bỏ http:// và tên máy chủ.

Ví dụ
Đôi khi thông tin trên một trang cần được sử dụng bởi các trang khác trên trang web. Điều này thường được thực hiện để giảm số lượng mã lặp lại trên mỗi trang. Giả sử có một tập tin _contact.html, chứa thông tin về số điện thoại, gửi email và chứa một hình ảnh liên hệ.png. (Hãy để nó là một bảng nhỏ sẽ nằm trên mỗi trang của trang web.)

Đoạn mã sau dùng để chèn hình ảnh "contact.png".

Mã cần thiết để chèn một tệp vào một tệp khác nằm ngoài phạm vi của bài viết này. Tất cả phụ thuộc vào ngôn ngữ lập trình được sử dụng.

Tôi hy vọng bạn đã biết loại đường dẫn nào được sử dụng trong đoạn mã trên. Nếu không, hãy xem định nghĩa đường dẫn tương đối của tài liệu ở trên.
Bây giờ, khi khách truy cập vào các trang của trang web như nhà.html, liên hệ.ntml, anh ấy sẽ thấy một trang được hiển thị hoàn hảo. Trong đó mỗi tập tin được chèn vào _contact.html, trong đó, một hình ảnh được chèn vào liên hệ.png.
Nói cách khác, ví dụ, bằng cách truy cập trang nhà.html, điều sau sẽ xảy ra: “Mã trang chính đang chạy nhà.html. Sau đó mã trang được chèn và thực thi _contact.html. Mã trang _contact.html, nói rằng bạn cần vào thư mục hình ảnh và lấy hình ảnh từ đó liên hệ.png«.
Nếu bạn bỏ qua mã nhúng, mọi thứ sẽ hoạt động tốt. Nhưng nếu bạn chạy trang sản phẩm.html, thì sẽ xảy ra lỗi. Vì mã sẽ cố gắng tìm thư mục hình ảnh và tập tin liên hệ.png trong thư mục các sản phẩm. Nhưng một thư mục như vậy không tồn tại ở đó, đó là nơi vấn đề thực sự phát sinh.
Rõ ràng là bạn không thể sử dụng đường dẫn tương đối của tài liệu ở đây.
Tất nhiên, bạn có thể sử dụng đường dẫn tuyệt đối ở đây. Về ưu và nhược điểm cách tiếp cận này Tôi đã nói ở trên.
Nói chung, đây là một trong những tình huống mà bạn nên sử dụng đường dẫn liên quan đến thư mục gốc của trang. Khi sử dụng đường dẫn liên quan đến thư mục gốc của trang, liên kết sẽ luôn bắt đầu bằng thư mục gốc(gốc trang web). Loại đường dẫn này sẽ cho phép bạn sử dụng mã để chèn, chẳng hạn như một hình ảnh, bất kể hệ thống phân cấp trang web và các thư mục của nó.
Sử dụng đường dẫn liên quan đến thư mục gốc của trang trong ví dụ trên sẽ tránh được các vấn đề khi chèn hình ảnh. Bởi vì dù loại đường dẫn này được sử dụng ở đâu, nó sẽ luôn tìm thấy tệp được chỉ định trong đó.
Đường dẫn liên quan đến trang gốc rất giống với đường dẫn liên quan đến tài liệu. Để tạo đường dẫn liên quan đến thư mục gốc của trang, bạn cần thêm ký hiệu / đến đầu cuộc hành trình.

Bây giờ hình ảnh sẽ được chèn chính xác vào bất kỳ trang nào của trang web.

Tôi hy vọng tôi đã giúp bạn một chút để hiểu những đường dẫn nào tồn tại, chúng được sử dụng khi nào và ở đâu. Bây giờ bạn có thể sử dụng tất cả các loại đường dẫn cho mục đích dự định của chúng.

Địa chỉ liên kết có thể là tuyệt đối hoặc tương đối. Địa chỉ tuyệt đối phải bắt đầu bằng giao thức (thường là http://) và chứa tên của trang web. Các liên kết tương đối dựa trên thư mục gốc của trang web hoặc tài liệu hiện tại.

Ví dụ 8.2 cho thấy cách tạo một liên kết tuyệt đối đến một trang khác.

Ví dụ 8.2. Sử dụng tài liệu tham khảo tuyệt đối

Địa chỉ tuyệt đối

Học HTML

Khi bạn chỉ định một thư mục trang web làm liên kết (ví dụ: http://site/css/), tệp chỉ mục sẽ được hiển thị. Đây là tệp được tải theo mặc định khi truy cập vào một thư mục mà không chỉ định rõ ràng tên tệp. Thông thường, tệp chỉ mục là một tài liệu có tên là index.html.

Liên kết tuyệt đối thường được sử dụng để trỏ đến tài liệu trên tài nguyên mạng khác, mặc dù cũng có thể tạo liên kết tuyệt đối trong trang hiện tại. Tuy nhiên, điều này không thường được thực hiện vì các liên kết như vậy khá dài và cồng kềnh. Do đó, các liên kết tương đối chủ yếu được sử dụng trong trang web.

Các liên kết liên quan đến tài liệu hiện tại

Khi tạo liên kết tương đối, bạn cần hiểu giá trị nào bạn nên chỉ định cho thuộc tính href, vì nó phụ thuộc vào vị trí ban đầu của tệp. Hãy xem xét một vài lựa chọn điển hình.

1. Các tập tin được đặt trong một thư mục (Hình 8.4).

Tên tệp này chỉ được lấy làm mẫu; trên trang web, không được sử dụng các ký tự tiếng Nga có dấu cách trong tên tệp và thậm chí trong các trường hợp khác.

2. Các tập tin được đặt ở các thư mục khác nhau(Hình 8.5).

Khi tài liệu nguồn được lưu trữ trong một thư mục và tài liệu được liên kết nằm trong thư mục gốc của trang thì hai dấu chấm và dấu gạch chéo (/) phải được đặt trước tên tệp trong địa chỉ liên kết, như hiển thị bên dưới.

Hai dấu chấm trong trường hợp này có nghĩa là thoát thư mục hiện tại cao hơn một cấp độ.

3. Các tập tin được đặt trong các thư mục khác nhau (Hình 8.6).

Hiện nay tập tin gốc nằm trong hai thư mục con và để liên kết đến tài liệu trong thư mục gốc của trang, bạn cần lặp lại ví dụ trước hai lần.

liên kết

Tình huống tương tự với bất kỳ số lượng thư mục con nào.

4. Các tập tin được đặt trong các thư mục khác nhau (Hình 8.7).

Bây giờ tình hình đang thay đổi, tệp nguồn nằm ở thư mục gốc của trang web và tệp mà bạn cần liên kết nằm trong thư mục. Trong trường hợp này, đường dẫn đến tệp sẽ như sau.

liên kết

Lưu ý rằng không có dấu chấm hoặc dấu gạch chéo bổ sung trước tên thư mục. Nếu tệp nằm bên trong không phải một mà là hai thư mục, thì đường dẫn đến nó sẽ được viết như thế này.

liên kết

Các liên kết liên quan đến thư mục gốc của trang web

Đôi khi bạn có thể tìm thấy đường dẫn đến tệp liên quan đến thư mục gốc của trang web, có vẻ như "/Thư mục/Tên tệp" với dấu gạch chéo ở đầu. Có, ghi lại Khóa học có nghĩa là liên kết dẫn đến một thư mục có tên khóa học, nằm ở thư mục gốc của trang web và trong đó bạn cần tải xuống tệp chỉ mục.

Xin lưu ý rằng hình thức nhập này không hoạt động trên máy tính cục bộ, nhưng chỉ dưới sự kiểm soát của máy chủ web.

Đường dẫn tuyệt đối


Trong trường hợp này, mọi thứ rất đơn giản, chúng tôi chỉ ra đường dẫn trực tiếp đến tệp nằm trên một miền khác. Có thể chỉ định đường dẫn rút ngắn bằng cách sử dụng hai dấu gạch chéo ở đầu mà không chỉ định rõ ràng http hoặc https và chính máy chủ sẽ thay thế giao thức (tiện ích mở rộng) được yêu cầu theo cài đặt của máy chủ. Điều quan trọng cần lưu ý là loại này là cần thiết để điều hướng giữa các trang web:
http://google.com

Liên quan đến thư mục gốc của trang web


Trong trường hợp này, trình duyệt lấy tên miền của trang web và thay thế liên kết được chỉ định tới nó. Trong trường hợp này nó sẽ hoạt động http://site/css/style.css. Trong trường hợp http, không cần phải lo lắng về https, vì nó sẽ được lấy ở dạng mà trang hiện đang mở, nghĩa là với http, nó sẽ là http. Nó cũng rất thuận tiện cho việc chuyển một số chức năng nhất định giữa các trang web khác nhau hoặc chuyển một trang web từ tên miền này sang tên miền khác mà không cần chạm vào mã. Một cách ưu tiên để chỉ định đường dẫn đến các trang và tệp.

Về trang này


Một phương pháp ít phổ biến hơn vì nó lấy trang hiện tại và thêm địa chỉ mới vào đường dẫn của nó ..com/trick/css/style.css . Hầu như không thể sử dụng được trong trường hợp chúng ta sử dụng CNC.

Sử dụng thẻ cơ sở


Trong trường hợp này, thay vì thay thế tên miền tiêu chuẩn, đường dẫn từ cơ sở sẽ được thay thế bằng đường dẫn tương đối. Tức là chúng ta sẽ nhận được một file có vị trí:
http://site/tricks/css/style.css

Đường dẫn tương đối và tuyệt đối trong PHP

Mọi thứ đều rất đơn giản, làm việc trong hệ thống tập tin Chúng ta sẽ tuân thủ các quy tắc làm việc với đường dẫn trong PHP. Nếu chúng ta chuyển lệnh tới trình duyệt máy khách thì đường dẫn HTML sẽ được sử dụng. Tức là, trong ví dụ sau, chúng ta chuyển từ PHP đường dẫn đến trình duyệt có trang mà nó cần truy cập. Việc trình duyệt đã hoàn tất quá trình chuyển đổi giữa các trang có thể được nhìn thấy trong thanh địa chỉ:
header("Vị trí: /page2.php");
Vì vậy, chúng tôi mở trang page1.php và page2.php được ghi vào thanh địa chỉ và toàn bộ vấn đề là trình duyệt đã tải trang page1.php ĐẦU TIÊN, sau đó nhận được thông tin có chuyển hướng và TẢI trang thứ hai page2.php. Trong trường hợp này, việc chuyển hướng diễn ra ở phía máy khách (trình duyệt), có nghĩa là chúng tôi sử dụng các quy tắc liên quan đến HTML (địa chỉ web).

Đường dẫn tuyệt đối trong PHP

Đường dẫn tuyệt đối trong PHP được coi là đường dẫn tuyệt đối từ thư mục mà máy chủ web được cài đặt. Con đường này có thể được lấy từ:
$_SERVER["DOCUMENT_ROOT"]
Nếu chúng ta lấy máy chủ này làm ví dụ, đường dẫn của nó là: /home/school/public_html/schoolphp, có nghĩa là để chỉ định đường dẫn đầy đủ đến ảnh “/photo/img1.jpg”, bạn cần chỉ định như sau con đường:
getimagesize("/home/school/public_html/schoolphp/photo/img1.jpg"); getimagesize($_SERVER["DOCUMENT_ROOT"]."/photo/img1.jpg");
Tôi muốn lưu ý rằng trang web có thể được đặt trong thư mục con, nghĩa là dành cho:
http://trang web/diễn đàn/
có thể cực kỳ khó sử dụng DOCUMENT_ROOT vì diễn đàn (như tập lệnh bên ngoài) vẫn chưa biết nó sẽ được đăng ở đâu trên trang web. Có một số cách để giải quyết vấn đề này, hãy liệt kê một vài cách:

1) Tạo một trang dưới dạng tên miền phụ.

2) Viết đường dẫn tuyệt đối trong config trong config.php, đó là:
Cốt lõi::$ROOT = $_SERVER["DOCUMENT_ROOT"]; getimagesize(Core::$ROOT."/photo/img1.jpg"); // sử dụng đường dẫn tuyệt đối có thể sửa đổi
Bây giờ bạn có thể liên kết toàn bộ trang web của mình với Core::$ROOT mà không cảm thấy tội lỗi, và nếu ngẫu nhiên Nếu bạn cần thay đổi đường dẫn đến tệp được bao gồm, bạn có thể ghi đè giá trị của Core::$ROOT;

Liên quan đến tệp bắt đầu (cơ sở)

Trong nhiều hệ thống index.php có một điểm vào duy nhất, nghĩa là, index.php mở ra và các tệp khác được kết nối từ đó.
bao gồm "./modules/allpages.php";
Trong trường hợp này, allpages.php sẽ được kết nối dọc theo đường dẫn: /home/school/public_html/schoolphp/modules/allpages.php. Phương pháp nàyđiều này thuận tiện vì nếu bạn viết include trong tệp allpages.php: include "./modules/module/page.php"; thì nó vẫn sẽ được tìm kiếm liên quan đến điểm vào, cụ thể là index.php:
/home/school/public_html/schoolphp/modules/module/page.php
Đây là một cách triển khai khá thuận tiện vì chúng ta biết rõ cấu trúc ứng dụng của mình liên quan đến index.php gốc. Ngay cả khi chúng ta gọi bất kỳ tệp nào khác chứ không phải index.php, các đường dẫn sẽ hoạt động giống hệt nhau. Chúng tôi đã gọi dir.php , có nghĩa là các đường dẫn sẽ được lấy tương ứng với tệp dir.php!

Bạn còn muốn biết gì nữa không?

Tôi không thể không nhắc nhở những người đã quên hoặc gợi ý cho những người chưa biết rằng bạn có thể quay lại không chỉ sâu vào các thư mục mà còn có thể lên trên (trở lại các thư mục) và cú pháp của chúng khá đơn giản:
bao gồm "../file.php";
Trong trường hợp này, thư mục của tập tin này hoặc thư mục gốc index.php sẽ được lấy và trả về 1 thư mục, trong đó tập tin “file.php” sẽ được tìm kiếm.

DOCUMENT_ROOT không phải là lựa chọn duy nhất để lấy đường dẫn gốc của trang web. Chúng ta hãy xem hướng dẫn: "Thư mục gốc của tài liệu trong đó tập lệnh hiện tại được thực thi chính xác là thư mục được chỉ định trong tập tin cấu hình máy chủ." Điều này có nghĩa là nếu đường dẫn được ghi sai trong tệp cấu hình, toàn bộ trang web sẽ không hoạt động. Phải làm gì? Bạn có thể viết thư cho quản trị viên và chủ sở hữu hosting lưu trữ máy chủ với hy vọng họ sẽ sửa những thiếu sót của họ. Hoặc tìm kiếm một giải pháp thay thế ổn định, đó là __DIR__ , đó là con đường tuyệt đối để tập tin này, nơi mã tập tin đang chạy. Giả sử chúng ta có tệp cấu hình trong thư mục cấu hình và để sử dụng __DIR__, chúng ta không phải quay lại một thư mục lên đầu mỗi lần bằng cách viết __DIR__"/../" chúng ta có thể ghi __DIR__ vào biến của mình một cách an toàn, trong ví dụ bên dưới tôi đã viết nó trong một thuộc tính của lớp (bài số 24, ai không hiểu thì dùng biến thông thường):
Cốt lõi::$ROOT = __DIR__; // Hoặc đối với PHP cũ - dirname(__FILE__);
Tôi cũng muốn nhắc bạn về một điều thú vị và quan trọng. Theo lý do bảo mật, máy chủ web cấm di chuyển qua các thư mục phía trên thư mục gốc của trang web. Nghĩa là, trang web được đặt tại đường dẫn sau: /home/school/public_html/schoolphp, nhưng nội dung của các thư mục /home hoặc /home/school sẽ không có sẵn để đọc.

PHP có thể sử dụng đường dẫn HTML không? Vâng, trong Chức năng đặc biệt, Ví dụ:
file_get_contets("http://trang web");

Luyện tập

Trong các dự án cũ của tôi, tôi đã sử dụng DOCUMENT_ROOT, bây giờ tôi đã chuyển sang các đường dẫn tương đối index.php "./folder/file".

Zend2, một sản phẩm của các nhà phát triển PHP, là một trong những FrameWorks phức tạp nhất trên khoảnh khắc này Nó cũng sử dụng các đường dẫn tương đối với cú pháp khác với cú pháp của tôi, đó là “thư mục/tệp”.

Diễn đàn IPB.3 sử dụng dirname(__FILE__).

Kết luận:

1) Trong HTML, chúng tôi sử dụng các đường dẫn liên quan đến thư mục gốc của trang, cụ thể là “/file.php” (Dòng bắt đầu bằng gạch chéo).
2) trong PHP chúng tôi sử dụng tương đối tập tin gốc"./file.php" (Dòng bắt đầu bằng chấm và gạch chéo), một cách khác là sử dụng thuộc tính được khởi tạo ở thư mục gốc: __DIR__;
3) Chuyển hướng tiêu đề sử dụng đường dẫn từ HTML. PHP làm việc với hệ thống tệp (kết nối tệp, lưu và chỉnh sửa hình ảnh) - với đường dẫn PHP.

Bài viết có chứa các đoạn mã. Phiên bản đầy đủ bạn có thể lấy nó ở đây - https://bitbucket.org/okiseleva/html-and-css-learn/src. Thư mục - “absolute_path_lvl_1” và tất cả các thư mục con.

Đường dẫn có thể là tuyệt đối hoặc tương đối.

Đường dẫn tuyệt đối

Đường dẫn tuyệt đối là đường dẫn từ thư mục gốc tới file.

Đường dẫn bao gồm tất cả các thư mục mà chúng ta cần xem, được phân tách bằng dấu gạch chéo. Hãy xem một ví dụ:

/absolute_path_lvl_1/level_2.1/level_3.1/Kevin.png

Đường dẫn tuyệt đối tới tập tin

Đường dẫn tương đối

Đường dẫn tương đối là một liên kết trỏ đến các trang khác trên trang web của bạn có liên quan đến trang web mà liên kết đã tồn tại.

Nếu chúng ta di chuyển xuống các thư mục, chúng ta cũng phân tách chúng bằng cách sử dụng “/”. Nếu bạn cần lên một cấp độ nào đó, hãy viết “..”

1. Ví dụ đơn giản nhất về đường dẫn tương đối chỉ là tên tệp. nếu tệp ở gần, chỉ cần cho biết tên của nó

Xin chào.png

Đường dẫn tương đối, tập tin lân cận


2. Đi lên một thư mục

../Kevin_lvl_2.png

Đường dẫn tương đối 2

3. Một ví dụ phức tạp hơn, từ Diff_paths.htmlđến bức ảnh với Kevin

../level_2.1/level_3.1/Kevin.png

Đường dẫn tương đối 3


Sự khác biệt giữa đường dẫn tuyệt đối và tương đối là gì?

Nó rất đơn giản. Nếu đường dẫn được chỉ định từ thư mục gốc của hệ thống thì đây là đường dẫn tuyệt đối. Làm như thế nào địa chỉ gửi thư V. đời thực- dù bạn đi đâu nhưng đến đúng địa chỉ, bạn sẽ luôn tìm được đúng nơi.

Nếu gốc không được chỉ định ở đầu đường dẫn thì đường dẫn này sẽ mang tính tương đối và nó sẽ được xây dựng từ vị trí hiện tại. Trong cuộc sống thực, nó giống như con đường dẫn đến quán rượu - "hai dãy nhà bên trái và luôn thẳng". Con đường này chỉ có thể đạt được từ một điểm cụ thể. Từ bên kia, bạn sẽ đến một nơi hoàn toàn khác.

Trong tập tin tuyệt đối_path_lvl_1/level_2.2/Diff_paths.html bạn có thể thấy Ví dụ về HTML các trang có đường dẫn tập tin khác nhau.

Đây là ví dụ về đường dẫn tuyệt đối và tương đối cho cùng một tệp với Kevin.


D:/hgprojects → Tôi đã tải xuống dự án “html-and-css-learn” tại đây. Bạn có thể có cách khác


Tái bút - biết thêm chi tiết trong cuốn sách "

TRONG bài học này Chúng tôi sẽ giải thích cho người mới bắt đầu đường dẫn tệp tuyệt đối và tương đối là gì, cũng như trường hợp nào nên sử dụng đường dẫn nào tốt hơn. Nếu bạn đã quen thuộc với chủ đề này, bạn có thể chuyển sang bài học tiếp theo.

Vì vậy, hãy bắt đầu với định nghĩa của thuật ngữ “đường dẫn”:

Đường dẫn (eng. path) - một tập hợp các ký tự hiển thị vị trí của tệp trong hệ thống tệp, địa chỉ của thư mục.

Wikipedia

Nếu chúng ta nói về các trang web, thì đường dẫn giống như liên kết. Liên kết có thể là tuyệt đối hoặc tương đối. Hãy xem xét cả hai lựa chọn chi tiết hơn.

Đường dẫn tuyệt đối tới một tập tin là gì

https://www.google.com/images/branding/googlelogo.png

Đường dẫn tuyệt đối có thể được sử dụng trong CSS. Ví dụ: để đặt hình ảnh làm nền, bạn có thể lấy URL tuyệt đối của tệp hình ảnh VÀ chỉ định nó trong biểu định kiểu:

Hình nền: url(http://www.example.com/img/bg.png);

Đường dẫn tệp tương đối là gì

Với một địa chỉ tương đối, mọi thứ thú vị hơn nhiều - nó có thể được tính cả từ thư mục gốc của trang web và từ tài liệu hiện tại. Đường dẫn tương đối gốc- đây là đường dẫn cho biết vị trí của tệp so với thư mục gốc của trang web. Trong trường hợp này, địa chỉ không chứa giao thức cũng như tên miền và bắt đầu bằng dấu gạch chéo /, biểu thị thư mục gốc. Địa chỉ này trông như thế này:

Hình nền: url(/img/bg.png);

Cách xác định gốc dễ dàng địa chỉ tương đối? Chỉ cần lấy một liên kết tuyệt đối và xóa giao thức cũng như tên miền khỏi nó, để lại dấu gạch chéo và tất cả các ký tự theo sau nó.

Đường dẫn tệp tương đối từ tài liệu là đường dẫn đến tệp liên quan đến tài liệu hiện tại. Địa chỉ này phụ thuộc vào vị trí của tệp mà nó được ghi. Vì vậy, khi một liên kết tương đối được chỉ định trong biểu định kiểu, nó sẽ tính toán đường dẫn đến tệp dựa trên biểu định kiểu chứ không phải trên trang web hiện tại hoặc thư mục gốc. Hãy đưa ra một vài ví dụ.

Ví dụ tôi

Nếu biểu định kiểu của chúng tôi là style.css và tệp có hình nền bg.png nằm trong cùng một thư mục (không nhất thiết phải là thư mục gốc) thì đường dẫn tương đối từ bảng đến ảnh sẽ như sau:

Hình nền: url(bg.png); /*bạn chỉ cần ghi tên file */

Ví dụ II

Nếu biểu định kiểu nằm trong thư mục gốc và hình ảnh nằm trong thư mục img thì liên kết tương đối sẽ như thế này:

Hình nền: url(img/bg.png); /*không cần gạch chéo ở đầu */

Ví dụ III

Nếu style sheet nằm trong một thư mục và hình ảnh nằm cạnh thư mục này thì đường dẫn tương đối sẽ như sau:

Hình nền: url(../bg.png); /* hai dấu chấm - lên một cấp */

Ví dụ IV

Nếu style sheet nằm trong hai thư mục, và bản vẽ nằm liền kề với thư mục đầu tiên thì đường dẫn tương đối sẽ như sau:

Hình nền: url(../../bg.png); /*lên 2 cấp*/

Hai dấu chấm và dấu gạch chéo ở đầu đường dẫn tương đối có nghĩa là tăng lên một cấp. Tùy thuộc vào số cấp độ (thư mục) mà bạn cần leo lên, bạn cần đăng ký số lượng yêu cầu dấu chấm có dấu gạch chéo. Ví dụ: nếu biểu định kiểu không nằm trong hai mà trong bốn thư mục, thì mục nhập tương ứng sẽ như sau:

Hình nền: url(../../../../bg.png);

Trong trường hợp hình ảnh bị ẩn trong thư mục img và style sheet bị ẩn trong thư mục css, bạn sẽ cần thoát khỏi thư mục css và vào thư mục img. Như thế này:

Hình nền: url(../img/bg.png);

Nếu có nhiều thư mục, bạn cũng phải đăng ký chúng. Hãy thay đổi ví dụ trước: hãy tưởng tượng rằng trong thư mục img có một thư mục nền khác chứa bản vẽ của chúng ta. Đường dẫn tương đối sẽ như thế này:

Hình nền: url(../img/backgrounds/bg.png);

Cách nào tốt hơn để sử dụng

Địa chỉ liên kết tuyệt đối Bạn sẽ cần sử dụng nó nếu tệp bạn đang liên kết đến nằm trên một trang khác. Trong một trang web, đường dẫn tuyệt đối thực tế không được sử dụng (mặc dù nó sẽ hoạt động). Điều này là do một số điểm: thứ nhất, các liên kết như vậy có thể rất cồng kềnh, thứ hai, nếu tên miền thay đổi sẽ phát sinh vấn đề - tất cả các liên kết sẽ dẫn về tên miền cũ, có thể dẫn đến nhiều lỗi và liên kết bị hỏng.

Đường dẫn tương đối gốc sẽ hoạt động trên máy chủ web, nhưng nó vô dụng khi phát triển trên máy tính cục bộ. Nhưng ưu điểm của loại liên kết này là bạn có thể di chuyển biểu định kiểu của mình đến bất kỳ thư mục nào trên trang web mà không sợ địa chỉ hinh nên sẽ thất nghiệp.

Đường dẫn tương đối từ tài liệu - lựa chọn tốt nhất khi phát triển web trên máy cục bộ mà không cần sử dụng máy chủ. Trong trình duyệt, bạn sẽ có thể xem các trang web được lưu trữ trên máy tính của mình một cách bình thường và địa chỉ tệp sẽ hoạt động. Chúng sẽ hoạt động trên một trang web trực tiếp, nhưng với một điều kiện - nếu bạn không di chuyển biểu định kiểu đến nơi khác (nếu không, bạn sẽ phải điều chỉnh các đường dẫn).

Hãy thử thực hành sử dụng các đường dẫn tương đối trên cả máy tính cục bộ và trên máy chủ web của bạn. Hiểu cách thức hoạt động của nó chắc chắn sẽ hữu ích cho bạn trong bất kỳ dự án nào.

Hơn nữa trong hướng dẫn: Thuộc tính lặp lại nền - kiểm soát sự lặp lại của hình nền.