2012-07-06 33 views
6

Tôi sử dụng phần mở rộng .jst cho tệp mẫu và tải chúng với văn bản requirejs! cắm vào. Ví dụ:Tại sao requirejs cố gắng nối thêm một tệp '.js' vào tệp .jst được tải bằng plugin văn bản!

define([ 
    'jquery', 
    'backbone', 
    'underscore', 
    'text!templates/MyView.jst' 
], 
function($, Backbone, _, templateText) { 
    return Backbone.View.extend({ 
    template: _.template(templateText), 
    initialize: function() { 

    }, 
    render: function() { 
    } 
    }); 
}); 

Điều này làm việc tăng lên khi tôi thử nghiệm tại địa phương. Tuy nhiên, khi tôi cố gắng làm điều này sau khi tôi đã triển khai các tệp tĩnh của mình thành AWS (phần động của ứng dụng chạy trên Heroku), nó không tải được tệp .jst và dường như đang cố gắng thêm một .js vào url.

Để tham khảo, đây là cấu hình requirejs của tôi (từ main.js)

requirejs.config({ 
    paths: { 
    //directories 
    plugins: "lib/plugins", 

    //libs 
    jquery: "lib/jquery/1.7.1/jquery", 
    underscore: "lib/underscore/1.3.3/underscore", 
    backbone: "lib/backbone/0.9.2/backbone", 
    moment: "lib/moment", // date lib 

    //require plugins 
    text: "lib/require/plugins/text", 
    domReady: "lib/require/plugins/domReady" 
    }, 
    shim: { //specify all non-AMD javascript files here. 
    backbone: { 
     deps: ['underscore', 'jquery'], 
     exports: 'Backbone' 
    }, 
    underscore: { 
     exports: '_' 
    }, 
    moment: { 
     exports: 'moment' 
    }, 
    'plugins/jquery.colorbox': ['jquery'], 
    'util/jquery.dropTree':['jquery'], 
    'util/common':['jquery'] 
    } 
}); 
+0

Nhìn vào các tài liệu require.js đây: http://requirejs.org/docs/api.html#config-baseUrl nhìn nó như nó có thể là một vấn đề cross-domain. Ai đó có thể xác nhận đây là trường hợp? (cảm thấy tự do để có nó như là một câu trả lời nếu nó dứt khoát là). Nếu đây là trường hợp, đó là một cách tối nghĩa để xử lý nó. Ban đầu tôi cho rằng các mẫu chỉ phải nằm trên cùng một miền với các tệp JS, nhưng có vẻ như nó phải nằm trên cùng một miền với chính trang đó. Có vẻ như tôi có thể phải tiến lên phía trước với việc phát triển bước tiếp theo (chạy mọi thứ thông qua trình tối ưu hóa r.js) trước khi tôi có thể làm việc này. –

Trả lời

9

tôi chỉ cập nhật các text.js README với thông tin giải thích vấn đề này. Về cơ bản nó là một cách để sử dụng tài nguyên văn bản trên các tên miền, nhưng nó đòi hỏi một xây dựng. Có một cách để ghi đè lên. Chi tiết tại đây:

https://github.com/requirejs/text#xhr-restrictions

+0

Cảm ơn bạn đã phản hồi và cho mọi thứ bạn đưa vào Requre.js, jrburke. Tuyệt vời của nó. –

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