1

我正在开发一个 SPA,并使用 requireJS 优化器优化了我的一个代码文件,并像这样设置新路径:

config.paths['billingmanager/billing/billing'] = 'billingmanager/billing/billing-build';

不幸的是,现在(概念上)执行此操作的代码

require(['text!billingmanager/billing/billing.htm'], callback);

现在试图找到billingmanager/billing/billing-build.htm并惨败。

可以说文字吗!也就是说,无论如何设置正常的 require 路径billingmanager/billing/billing,我都希望您获取文件billingmanager/billing/billing.htm-period.

我确实有一个解决方法,做这样的事情

config.paths['billingmanager/billing-htm'] = 'billingmanager/billing/billing.htm';

然后手动知道要使用require(['text!billingmanager/billing-htm']);,但我真的希望这里有一个简单的修复。

4

1 回答 1

3

我没有遇到这个具体问题,但我要做的第一件事就是text!用相对路径替换我给出的路径,这应该避免与你在paths. 因此,例如:

require(['text!../parent/billingmanager/billing/billing.htm'], callback);

当然,您应该使用的实际相对路径取决于您的应用程序的体系结构。事实证明,仅仅使用./并不足以解决 RequireJS 的聪明问题,所以在上图中,我退出当前目录,然后返回。我假设当前目录是 name parent

请注意,给定text!路径的路径解析规则与常规路径解析规则不同。通常,将扩展名添加到给定的路径require将完全绕过paths设置。因此,require(['billingmanager/billing/billing/foo.js']...将查找一个名为billingmanager/billing/billing/foo.jsrelative的文件,baseUrl并且不会使用paths您在问题中显示的设置。对于给定的路径,情况并非如此text!paths即使它们具有扩展名,这些路径也会通过设置。(这在此处记录。)

于 2014-04-02T17:15:03.373 回答