我为模板文件使用 .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 附加到它们的网址。
作为引用,这是我的 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']
}
});
最佳答案
我刚刚用解释这个问题的信息更新了 text.js 自述文件。它基本上是一种跨域使用文本资源的方式,但它需要构建。有一种方法可以覆盖。详情在这里:
关于javascript - 为什么 requirejs 试图将 '.js' 附加到使用 !text 插件加载的 .jst 模板文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11358320/