Javascript requirejs需要文本!由于相对路径在iphone上导致非规范化错误,bet在emulator上工作
我将requirejs与phonegap一起使用,并在模块定义中加载一些文本文件,如下所示Javascript requirejs需要文本!由于相对路径在iphone上导致非规范化错误,bet在emulator上工作,javascript,iphone,cordova,requirejs,Javascript,Iphone,Cordova,Requirejs,我将requirejs与phonegap一起使用,并在模块定义中加载一些文本文件,如下所示 define(['text!../configuration/systemcore.cfg', //config files 'text!../language/cn.systemcore.lang', //languagefiles 'Configuration', 'DatabaseHandler', 'Language', //framework js
define(['text!../configuration/systemcore.cfg', //config files
'text!../language/cn.systemcore.lang', //languagefiles
'Configuration', 'DatabaseHandler', 'Language', //framework js
'FileHandler', 'NotificationHandler',
'BaseModule' //base classes
],
function(cfg, lang,
Configuration, DatabaseHandler, Language, FileHandler, NotificationHandler,
BaseModule) {
在ios模拟器中一切正常,但一旦加载到ios设备中,就会导致
文本文件上的非规范化错误导致加载模块超时,为什么…好的,我在requirejs.config({patch:{…})中添加了文本:“path/to/text.js”,解决了这个问题。在我没有明确指出文本的情况下,它以前如何在模拟器中工作仍然很奇怪。js也许这个答案不是这个特定问题的解决方案,但是我发现这个主题在搜索类似的问题:控制台中的非规范化错误和加载超时,所以在这里发布它可能很有用 根据我的经验,当使用不同的路径引用两次时,文本插件似乎工作不正确 例如,如果您首先引用完整路径:
define(["js/libs/text!somefile.html"], ...)
然后配置requireJS路径并使用别名:
require.config({paths: {
"text": "js/libs/text.js"
}});
define(["text!somefile.html"], ...)
它使同一个模块加载两次,第二个
define
导致错误。如果我错了,请纠正我。好的,我做了更多的研究,似乎这个错误与文本有关!未被识别,可能文本加载器插件在ios设备环境中不起作用。好吧,进一步研究,奇怪的是,在emulator上,加载器插件text.js会自动加载,但在ios上不会。。奇怪,原因是正确的。我也面临着类似的问题。我通过相应地配置路径来解决问题。