2012-03-01 34 views
18

Ai đó có thể vui lòng giải thích lý do tại sao tôi nên sử dụng (hay tôi nên?):tại sao sử dụng @ Url.Content

<script type="text/javascript" src="@Url.Content("/Scripts/SomeScript.js")"></script> 

vs

<script type="text/javascript" src="/Scripts/SomeScript.js"></script> 

Cảm ơn

Trả lời

26

Đoạn @Url.Content("/Scripts/SomeScript.js") không hoàn toàn không có gì và tương đương với chỉ /Scripts/SomeScript.js.

Tuy nhiên, đối với đường dẫn bắt đầu bằng "~", nó sẽ dịch url thành url chính xác, ứng dụng tương ứng, ví dụ: @Url.Content("~/Scripts/SomeScript.js") có thể dịch thành /MyVirtualDirectory/Scripts/SomeScript.js, nếu bạn triển khai ứng dụng web của mình vào thư mục ảo MyVirtualDirectory bên dưới thư mục gốc của trang web.

+1

+1, Với các từ khác: 'Url.Content' đảm bảo rằng tất cả các liên kết hoạt động không có vấn đề gì nếu trang web nằm trong thư mục ảo hoặc trong thư mục gốc của trang web. – jgauffin

+16

Chỉ cần một lưu ý bổ sung: 'Url.Content' nó đã được một trợ giúp lớn cho đến nay, nhưng trong MVC4/Razor2.0 nó không còn cần thiết, chúng tôi có thể sử dụng:' src = "~/Scripts/SomeScript.js" '. – GolfWolf

+0

Ngoài ra, vì 'loại' mặc định là' text/javascript', bạn có thể bỏ nó ra. Điều này là phù hợp với tất cả các trình duyệt hiện tại và thậm chí là cũ. – Aaron

Các vấn đề liên quan