2012-07-06 13 views
6

Io uso un'estensione .jst per i file modello e li carico con il testo requirejs! collegare. Ad esempio,Perché requirejs sta tentando di aggiungere un file ".js" ai file .jst caricati con il plugin! Text?

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

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

Questo funziona quando eseguo il test localmente. Tuttavia, quando provo a farlo dopo aver distribuito i miei file statici in AWS (le parti dinamiche dell'applicazione eseguite su Heroku), non riesce a caricare i file .jst e sembra che stia cercando di aggiungere un file .js ai loro url.

Per riferimento, ecco la mia requirejs config (da 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

Guardando la documentazione require.js qui: http://requirejs.org/docs/api.html#config-baseUrl sua Guardando come può essere un problema di cross-domain. Qualcuno può confermare questo è il caso? (sentiti libero di prenderlo come risposta se è definitivamente). Se questo è il caso, è un modo oscuro per gestirlo. Inizialmente pensavo che i template dovessero trovarsi nello stesso dominio dei file JS, ma sembra che debba essere nello stesso dominio della pagina stessa. Sembra che potrei dover andare avanti con lo sviluppo del passaggio successivo (eseguendo tutto attraverso l'ottimizzatore r.js) prima che possa farlo funzionare. –

risposta

9

Ho appena aggiornato il file README text.js con le informazioni che spiega questo problema. È fondamentalmente un modo per utilizzare le risorse di testo tra i domini, ma richiede una compilazione. C'è un modo per scavalcare. Dettagli qui:

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

+0

Grazie per la risposta e per tutto ciò che hai inserito in Requre.js, jrburke. È meraviglioso. –

Problemi correlati