我正在为我的javascript项目使用RequireJS,而r.js则为生产构建一个单独的javascript文件。然后将此单个文件(main.js)上载到CDN。这一切都很好,但现在我正在尝试添加i18n支持。
问题是i18n文件的位置是相对于主javascript文件的。所以在一个模块中,我会:
define(['i18n!nls/text'], function(Translation) { });
当我开发时,这一切都非常好,但是对于生产而言,问题是转换文件与main.js文件无关,因为它放在CDN中。我不想将翻译文件存储在CDN中,那么如何在构建过程中更改对该文件的引用?
答案 0 :(得分:5)
我找到了解决问题的方法。 在RequireJS配置中,我添加了:
requirejs.config({
paths: {
nls: "/js/nls"
}
});
因为路径以斜杠开头,所以RequireJS知道它不是相对的。现在我遇到的问题是构建会失败,因为RequireJS会在/ js / nls中查找默认语言文件。因此,我从网络服务器的根目录添加了符号链接到计算机上的nls目录。
答案 1 :(得分:0)