Làm cách nào tôi có thể nhập một liên kết nội bộ hoạt động với các độ dài đường dẫn khác nhau và tiếp tục hoạt động khi tôi tải trang web của mình lên máy chủ trực tiếp?
Nói rằng tôi có một trang ở đây http://localhost/site1/web/page1
và tôi muốn tạo một khối ở chân trang có liên kết đến trang này.
Nếu tôi sử dụng một liên kết tương đối (ví dụ: trang1
)
Nó sẽ hoạt động khi tôi ở trên trang này ...
http://localhost/site1/web/
Nhưng điều đó sẽ không xảy ra nếu tôi đang đi trên một đường dẫn nhiều đoạn, ví dụ: ...
http://localhost/site1/web/about/terms/
Nếu tôi tạo một liên kết tương đối với máy chủ (ví dụ: /site1/web/trang1
)
Nó sẽ không hoạt động khi máy chủ thay đổi ...
http://mysite.com/
(Tôi phát triển trang web cục bộ trên PC của mình và khi trang web hoàn thành, tôi tải nó lên trang web lưu trữ của mình).
Ngoài ra, nó sẽ không hoạt động nếu tôi muốn sao chép trang web...
http://localhost/site2/web/
Đường dẫn tuyệt đối (ví dụ:http://localhost/site1/web/page1
)
cũng sẽ không hoạt động khi tôi bắt đầu chạy trang web trên máy chủ trực tiếp.
Tôi đã thử mô-đun linkit. Nó hoạt động cho các trường hợp trên nhưng chỉ cho một số loại liên kết (ví dụ: tôi không thể làm cho nó hoạt động đối với các liên kết đến chế độ xem).
Mô-đun bệnh lý đã khắc phục sự cố này trong Drupal 7 nhưng vẫn chưa sẵn sàng cho Drupal 9.
Tôi đã nhận được kết quả tốt nhất khi sử dụng mô-đun php (nó cung cấp bộ lọc mà bạn có thể thêm vào định dạng văn bản). Nhưng tôi tin rằng việc sử dụng mô-đun này không được tán thành.
<?php
use Drupal\Core\Link;
use Drupal\Core\Url;
print(Url::fromUserInput('/node/1')->toString());
?>
Tôi có thiếu một giải pháp thay thế tốt hơn không? (Sẽ rất hữu ích nếu có một cách để tạo các liên kết có liên quan đến thư mục 'web' drupal.)