Trong các ứng dụng của tôi, tôi thường phải sử dụng các đường dẫn tương đối. Ví dụ: khi tôi tham chiếu JQuery, tôi thường làm như thế này:
<script type="text/javascript" src="../Scripts/jquery-1.2.6.js"></script>
Bây giờ tôi đang thực hiện chuyển đổi sang MVC, tôi cần tính đến các đường dẫn khác nhau mà một trang có thể có, liên quan đến thư mục gốc. Tất nhiên đây là một vấn đề với việc viết lại URL trong quá khứ, nhưng tôi đã xoay sở để khắc phục bằng cách sử dụng các đường dẫn nhất quán.
Tôi biết rằng giải pháp tiêu chuẩn là sử dụng các đường dẫn tuyệt đối như:
<script type="text/javascript" src="/Scripts/jquery-1.2.6.js"></script>
nhưng điều này sẽ không hiệu quả với tôi vì trong chu kỳ phát triển, tôi phải triển khai đến một máy thử nghiệm mà ứng dụng sẽ chạy trong một thư mục ảo. Các đường dẫn tương đối gốc không hoạt động khi gốc thay đổi. Ngoài ra, vì lý do bảo trì, tôi không thể đơn giản thay đổi tất cả các đường dẫn trong suốt thời gian triển khai thử nghiệm - bản thân đó sẽ là một cơn ác mộng.
Vậy giải pháp tốt nhất là gì?
Biên tập:
Vì câu hỏi này vẫn đang nhận được lượt xem và câu trả lời, tôi nghĩ có thể cần thận trọng khi cập nhật nó để lưu ý rằng kể từ Razor V2, hỗ trợ cho các url tương đối gốc được tích hợp, vì vậy bạn có thể sử dụng
<img src="~/Content/MyImage.jpg">
mà không có bất kỳ cú pháp phía máy chủ nào và công cụ chế độ xem tự động thay thế ~ / bằng bất kỳ gốc trang web hiện tại nào.