2012-03-05 28 views
9

Tôi đặt dữ liệu chính cho Requirejs và theo tài liệu nên đặt baseUrl cho tất cả các tệp tập lệnh của tôi. Nhưng đây không phải là trường hợp. cấu trúc thư mục của tôi là:Yêu cầu dữ liệu chính không thiết lập baseUrl

Home/Index.html 
Content/scripts/main.js 
Content/scripts/libs/require/require.js 
Content/scripts/libs/jquery/require_jquery.js 
Content/scripts/libs/jquery/jquery-1.7.1.mins.js 

Đây là thẻ script trong tôi index.html:

<script data-main="/PAWS/Content/scripts/main.js" src="/PAWS/Content/scripts/libs/require/require.js" type="text/javascript"></script> 

tôi sẽ giả định nó sẽ đặt baseUrl tôi để/PAWS/Content/scripts/nhưng nó không làm việc cho tôi. Trong main.js tôi Tôi làm điều này:

require(
    { paths: 
     { jquery: 'libs/jquery', 
      knockout: 'libs/knockout' 
     } 
    }, 

    ['jquery/require_jquery'], 


    function ($) { .... } 
); 

trong require_jquery.js tôi tập tin tôi làm điều này:

define(["libs/jquery/jquery-1.7.1.min.js"], function() { 
    return jQuery; 
}); 

Nhưng tôi nhận được một lỗi 404 nói rằng:

GET http://localhost/PAWS/Home/libs/jquery/jquery-1.7.1.min.js 404 NOT FOUND 

Bạn thấy .. baseUrl của tôi phải là/PAWS/Nội dung/tập lệnh ... Nhưng nó hoàn toàn bỏ qua cài đặt thuộc tính dữ liệu chính của tôi và chỉ giải quyết/PAW S/Trang chủ/là baseUrl. Tôi đang làm gì sai?

Trả lời

10

Từ RequireJS API docs:

Tuy nhiên, nếu tên phụ thuộc có một trong các thuộc tính sau, nó được coi như một tập tin thường xuyên con đường, giống như một cái gì đó đã được chuyển đến thẻ <script src="">:

  • Kết thúc bằng ".js".
  • Bắt đầu bằng dấu "/".
  • Chứa giao thức URL, như "http:" hoặc "https:".

Từ đó, dường như rõ ràng ".js" của bạn trên hết libs/jquery/jquery-1.7.1.min.js được nhiễu đường tái của bạn: baseUrl. Thay vào đó, hãy thử libs/jquery/jquery-1.7.1.min.

+0

Thưa bạn, bạn là một thiên tài. Cảm ơn nhiều. –

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