我正在为我的 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 中寻找默认语言文件。因此,我从我的网络服务器的根目录添加了一个符号链接(symbolic link)到机器上的 nls 目录。
关于javascript - 如何使用 RequireJS r.js 构建更改 i18n 的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21700559/