我正在使用requireJS加载脚本。在加载.mu(胡子)文件时,require会在这些路径的末尾添加.js扩展名。然而,这只发生在IE浏览器上,而Chrome和FF工作正常。我查看了一些来源并找到了与此问题相关的答案。在其中一个案例中,它是要添加的noext插件:
require.config({
paths: {
'signalr-hubs': '/signalr/hubs?noext'
}
});
可以添加以解决此问题。但是我不确定是否仅添加上述行将有助于解决问题。我是否需要添加任何依赖插件或任何东西以使其工作?
这是我的main.js:
require.config({
paths: {
'signalr-hubs': '/signalr/hubs?noext',
'text': 'path-to-text/text',
'underscore': 'path-to-underscore/underscore',
'jquery': 'path-to-jquery/jquery',
'mustache':'path-to-mustache/mustache'
}
});
任何想法? 谢谢!
答案 0 :(得分:0)
Requirejs意味着加载js文件,这就是推测js扩展名的原因。
要加载您需要的任何其他内容类型,您需要使用插件。而不是将资源传递给requirejs,而是将其传递给插件。
由于小胡子是Handlebars的某种父亲,你可能想尝试一下requirejs Handlebars插件。
https://github.com/SlexAxton/require-handlebars-plugin
你会添加
{
...
'hbs' : 'vendor/requirejs-handlebars/hbs'
...
}
到您的路径配置。
最终,将模板加载为
require(['hbs!template/something'], function(somethingFn) {
...
});
您看,传递给requirejs的资源是hbs(hbs.js),传递给hbs.js的资源是模板文本文件。
Hbs插件假设扩展名为.hbs,但它是可配置的。