2012-07-06 13 views
6

私はテンプレートファイルに.jst拡張子を使用し、requirejsテキストでこれらをロードします!プラグイン。例:なぜrequirejsは!textプラグインでロードされた.jstテンプレートファイルに '.js'を追加しようとしていますか?

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ファイルを.jsファイルに追加しようとしているようですURL。

は参考のために、ここで私はこの問題を説明する情報をtext.jsのREADMEを更新

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

:http://requirejs.org/docs/api.html#config-baseUrlそのそれのように見えることは、クロスドメインの問題になることがあります。誰かがこれを確認できますか? (確かにそれが答えであれば自由に感じてください)。これが当てはまる場合、それを扱う曖昧な方法です。私は当初、テンプレートはJSファイルと同じドメイン上になければならなかったが、ページ自体と同じドメイン上になければならないようだ。これを実現するには、次のステップ(r.jsオプティマイザを使用してすべてを実行する)を開発していく必要があるようです。 –

答えて

9

(main.jsから)私のrequirejsの設定です。これは、基本的にドメイン間でテキストリソースを使用する方法ですが、ビルドが必要です。上書きする方法があります。詳細はこちら:

ここrequire.jsのドキュメントを見てみると

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

+0

レスポンスと、Requre.jsに入れたすべてのもの、jrburkeに感謝します。それは素晴らしいです。 –

関連する問題