6 Stimmen

Warum versucht requirejs, ein '.js' an .jst-Vorlagendateien anzuhängen, die mit dem !text-Plugin geladen werden?

Ich verwende eine .jst-Erweiterung für Vorlagendateien und lade diese mit dem requirejs text! plugin. z.B.,

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

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

Das funktioniert prima, wenn ich es vor Ort teste. Wenn ich jedoch versuche, dies zu tun, nachdem ich meine statischen Dateien auf AWS bereitgestellt habe (die dynamischen Teile der App laufen auf Heroku), schlägt es fehl, die JST-Dateien zu laden und scheint zu versuchen, ein JS an ihre URLs anzuhängen.

Als Referenz, hier ist meine requirejs-Konfiguration (aus 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']
  }
});

9voto

jrburke Punkte 6776

Ich habe gerade die text.js README mit Informationen aktualisiert, die dieses Problem erklären. Es ist im Grunde ein Weg, um Text-Ressourcen über Domains zu verwenden, aber es erfordert ein Build. Es gibt eine Möglichkeit, das zu überschreiben. Details hier:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X