ฉันจะป้อนลิงก์ภายในที่ใช้งานได้สำหรับเส้นทางที่มีความยาวต่างกันและทำงานต่อไปเมื่อฉันอัปโหลดเว็บไซต์ไปยังเซิร์ฟเวอร์จริงได้อย่างไร
บอกว่าฉันมีเพจที่นี่ http://localhost/site1/web/page1 และฉันต้องการสร้างบล็อกในส่วนท้ายที่มีลิงก์ไปยังหน้านี้
หากฉันใช้ลิงก์สัมพัทธ์ (เช่น หน้าที่ 1)
มันจะทำงานเมื่อฉันอยู่ในหน้านี้ ...
http://localhost/site1/web/
แต่จะไม่เป็นเช่นนั้นหากฉันอยู่บนเส้นทางหลายส่วน เช่น ...
http://localhost/site1/web/about/terms/
หากฉันสร้างลิงก์ที่เกี่ยวข้องกับเซิร์ฟเวอร์ (เช่น /site1/web/page1)
มันจะไม่ทำงานเมื่อเซิร์ฟเวอร์เปลี่ยน ...
http://mysite.com/
(ฉันพัฒนาไซต์ในเครื่องคอมพิวเตอร์ของฉัน และเมื่อไซต์เสร็จสิ้น ฉันจะอัปโหลดไปยังไซต์โฮสติ้งของฉัน)
นอกจากนี้ มันจะไม่ทำงานหากฉันต้องการโคลนไซต์...
http://localhost/site2/web/
เส้นทางสัมบูรณ์ (เช่นhttp://localhost/site1/web/page1)
จะไม่ทำงานเมื่อฉันเริ่มใช้งานไซต์บนเซิร์ฟเวอร์จริง
ฉันลองลิงค์โมดูล ใช้ได้กับกรณีข้างต้นแต่ใช้ได้กับลิงก์บางประเภทเท่านั้น (เช่น ฉันไม่สามารถใช้กับลิงก์ไปยังมุมมองต่างๆ ได้)
พยาธิสภาพของโมดูลแก้ไขปัญหานี้ใน Drupal 7 แต่ยังไม่พร้อมสำหรับ Drupal 9
ฉันได้ผลลัพธ์ที่ดีที่สุดโดยใช้โมดูล php (มีตัวกรองที่คุณสามารถเพิ่มในรูปแบบข้อความได้) แต่ฉันเชื่อว่าการใช้โมดูลนี้เป็นสิ่งที่ขมวดคิ้ว
<?php
use Drupal\Core\Link;
use Drupal\Core\Url;
print(Url::fromUserInput('/node/1')->toString());
?>
ฉันไม่มีทางเลือกอื่นที่ดีกว่านี้หรือ? (จะสะดวกหากมีวิธีสร้างลิงก์ที่เกี่ยวข้องกับไดเร็กทอรี 'web' ของ drupal)