6

テンプレート ファイルに .jst 拡張子を使用し、これらを requirejs テキストと共にロードします。プラグイン。例えば、

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

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

これは、ローカルでテストするとうまくいきます。ただし、静的ファイルを AWS (Heroku で実行されるアプリの動的部分) にデプロイした後にこれを実行しようとすると、.jst ファイルの読み込みに失敗し、.js を追加しようとしているように見えます。 URLの.

参考までに、これが私のrequirejs構成です(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']
  }
});
4

1 に答える 1

9

この問題を説明する情報で text.js README を更新しました。基本的にはドメインをまたいでテキスト リソースを使用する方法ですが、ビルドが必要です。オーバーライドする方法があります。詳細はこちら:

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

于 2012-07-06T21:08:11.140 に答える