2012-07-06 10 views
6

¡Utilizo una extensión .jst para los archivos de plantilla, y los cargo con el texto requerido! enchufar. Por ejemplo,¿Por qué requirejs está intentando agregar un archivo '.js' a .jst que se cargan con el complemento! Text?

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

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

Esto funciona bien cuando pruebo localmente. Sin embargo, cuando trato de hacer esto después de implementar mis archivos estáticos en AWS (las partes dinámicas de la aplicación se ejecutan en Heroku), no puede cargar los archivos .jst y parece estar intentando agregar un .js a su url's

Para referencia, aquí es mi RequireJS config (de 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

En cuanto a la documentación require.js aquí: http://requirejs.org/docs/api.html#config-baseUrl su buscando como puede ser una cuestión de varios dominios. ¿Alguien puede confirmar que este es el caso? (no dude en tomarlo como una respuesta si es definitivamente). Si este es el caso, es una manera oscura de manejarlo. Inicialmente pensé que las plantillas solo tenían que estar en el mismo dominio que los archivos JS, pero parece que tienen que estar en el mismo dominio que la página en sí. Parece que tengo que seguir adelante con el desarrollo del siguiente paso (ejecutar todo a través del optimizador r.js) antes de que pueda hacer que esto funcione. –

Respuesta

9

Acabo de actualizar el archivo README text.js con información que explica este problema. Básicamente es una forma de usar recursos de texto en todos los dominios, pero requiere una compilación. Hay una manera de anular. Detalles aquí:

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

+0

Gracias por la respuesta y por todo lo que pones en Requre.js, jrburke. Es impresionante. –

Cuestiones relacionadas