【问题标题】:How to change path for i18n with RequireJS r.js build如何使用 RequireJS r.js 构建更改 i18n 的路径
【发布时间】:2014-02-11 11:26:36
【问题描述】:

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

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

define(['i18n!nls/text'], function(Translation) { });

当我在开发时,这一切都很好,但对于生产来说,问题是翻译文件与 main.js 文件无关,因为它被放置在 CDN 中。我不想将翻译文件存储在 CDN 中,那么如何在构建过程中更改对该文件的引用?

【问题讨论】:

    标签: javascript internationalization requirejs r.js


    【解决方案1】:

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

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

    因为路径以斜杠开头,RequireJS 知道它不是相对的。现在我遇到的问题是构建会失败,因为 RequireJS 会在 /js/nls 中寻找默认语言文件。因此,我添加了一个从我的网络服务器根目录到机器上的 nls 目录的符号链接。

    【讨论】:

      【解决方案2】:

      有同样的问题。

      使用baseUrl 配置

      require.config({
          baseUrl: '/path_for_not_included_modules/'
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-18
        • 1970-01-01
        • 1970-01-01
        • 2017-06-10
        • 1970-01-01
        • 1970-01-01
        • 2016-02-17
        • 1970-01-01
        相关资源
        最近更新 更多