Tôi đã tạo một dự án ASP.net MVC mặc định. Trong trang Thầy tôi đã sau ở đầuCách thêm tệp js vào asp.net MVC và có đường dẫn hợp lệ trên tất cả các tuyến
<head runat="server">
<title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
<link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
</head>
sau đó tôi cần phải thêm một tập tin javascript và thêm các dòng như sau bằng cách kéo các tập tin từ cửa sổ solution explorer đến trang:
<head runat="server">
<title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
<link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
<script src="../../Scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
</head>
Khi tôi truy cập vào một trang web và nhìn vào html từ trình duyệt tôi thấy điều này:
<head><title>
Index
</title><link href="Content/Site.css" rel="stylesheet" type="text/css" />
<script src="../../Scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
</head>
các tập tin CSS đường dẫn tương đối đã được cố định nhưng các tập tin JS không. Trang web sẽ được triển khai đến một thư mục khác trên máy chủ chứ không phải thư mục gốc mà tôi nhận được trên hộp phát triển của tôi.
Có cách nào phù hợp để thực hiện việc này không?
Điều này khắc phục sự cố với cài đặt trang web trong thư mục con vì ~ được thay thế bằng đường dẫn đến gốc của trang web. Nhưng vấn đề là khi tôi đến thư mục gốc, tệp js nằm trong thư mục Scripts dưới gốc và không ../../Scripts vẫn còn. Vì MVC sẽ định tuyến đến các thư mục con khác nhau nên kịch bản không phải là allways có sẵn từ tất cả các tuyến. Tôi đã cung cấp cho bạn +1 vì ít nhất giờ tôi có cách để mã hóa đường dẫn liên quan đến thư mục gốc. Nhưng tôi sẽ chờ đợi để xem liệu ai đó có thể giải thích lý do tại sao nó hoạt động cho CSS ra khỏi hộp chứ không phải cho JS. – jvanderh
Tôi nghĩ rằng vấn đề không phải là css vs Javascript nhưng bạn chỉ đơn giản là có css của bạn bên trong thư mục conetne của bạn và không phải là kịch bản của bạn – Lewis