javascript - 为什么 requirejs 试图将 '.js' 附加到使用 !text 插件加载的 .jst 模板文件?

标签 javascript requirejs

我为模板文件使用 .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 自述文件。它基本上是一种跨域使用文本资源的方式,但它需要构建。有一种方法可以覆盖。详情在这里:

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

关于javascript - 为什么 requirejs 试图将 '.js' 附加到使用 !text 插件加载的 .jst 模板文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11358320/

相关文章:

javascript - react setInterval 和 useState

javascript - 幻灯片无法在 IE 上加载

jquery - 如何设置backbone fetch回调方法

javascript - 错误 : Cannot find module ' in Protractor

javascript - 使用 Chrome 控制台通过 RequireJS 访问 Knockout ViewModel

javascript - 如何将匿名函数包含到 RequireJS 依赖项中?

javascript - (Discord.js) 从语音 channel 中随机选择一个用户

javascript - 重新订阅时,Pubnub 会收到所有消息

javascript - JavaScript 中的对象操作数组

javascript - require.js - 如何将所需模块的版本设置为 URL 的一部分?