Javascript 如何使用RequireJS r.js构建更改i18n的路径

Javascript 如何使用RequireJS r.js构建更改i18n的路径,javascript,internationalization,requirejs,r.js,Javascript,Internationalization,Requirejs,R.js,我在javascript项目中使用RequireJS,在生产中使用r.js构建一个javascript文件。然后将这个文件(main.js)上载到CDN。这一切都很好,但现在我正在尝试添加i18n支持 问题在于i18n文件的位置与主javascript文件相对。因此,在一个模块中,我会: define(['i18n!nls/text'], function(Translation) { }); 在我开发时,这一切都很好,但对于生产来说,问题是翻译文件与main.js文件不相关,因为它被放在CD

我在javascript项目中使用RequireJS,在生产中使用r.js构建一个javascript文件。然后将这个文件(main.js)上载到CDN。这一切都很好,但现在我正在尝试添加i18n支持

问题在于i18n文件的位置与主javascript文件相对。因此,在一个模块中,我会:

define(['i18n!nls/text'], function(Translation) { });
在我开发时,这一切都很好,但对于生产来说,问题是翻译文件与main.js文件不相关,因为它被放在CDN中。我不想将翻译文件存储在CDN中,因此如何在构建过程中更改对该文件的引用?

也有同样的问题

使用配置


我找到了解决问题的办法。 在RequireJS配置中,我添加了:

requirejs.config({
    paths: {
        nls: "/js/nls"
    }
});
因为路径以斜线开头,所以RequireJS知道它不是相对的。现在我遇到的问题是构建会失败,因为RequireJS会在/js/nls中查找默认语言文件。因此,我将一个符号链接从Web服务器的根添加到机器上的nls目录

requirejs.config({
    paths: {
        nls: "/js/nls"
    }
});