我正在开发SPA,并使用requireJS优化器优化了我的一个代码文件,并设置了这样的新路径:
config.paths['billingmanager/billing/billing'] = 'billingmanager/billing/billing-build';
不幸的是,现在(概念上)执行此操作的代码
require(['text!billingmanager/billing/billing.htm'], callback);
现在试图找到billingmanager/billing/billing-build.htm
并惨遭失败。
我可以告诉文字!那,无论如何设置billingmanager/billing/billing
的正常需求路径,我都希望您获取文件billingmanager/billing/billing.htm
- 句点。
我有一个解决方法,做这样的事情
config.paths['billingmanager/billing-htm'] = 'billingmanager/billing/billing.htm';
然后手动知道使用require(['text!billingmanager/billing-htm']);
,但我真的希望这里有一个简单的解决方法。
答案 0 :(得分:3)
我没有遇到这个具体问题,但我要解决的第一件事就是用相对路径替换我给text!
的路径,这应该避免与你paths
中的路径冲突。所以,例如:
require(['text!../parent/billingmanager/billing/billing.htm'], callback);
当然,您应该使用的实际相对路径取决于应用程序的体系结构。事实证明,仅仅使用./
就不足以解决RequireJS'聪明如此,在上图中,我退出当前目录,然后返回。我假设当前目录名为parent
。
请注意,text!
路径的路径解析规则与常规路径解析规则的不同。通常,在require
的路径中添加扩展名会完全绕过paths
设置。因此,require(['billingmanager/billing/billing/foo.js']...
会查找相对于billingmanager/billing/billing/foo.js
的名为baseUrl
的文件,并且不会使用您在问题中显示的paths
设置。 text!
的路径不是这种情况。这些路径即使有扩展名,也会通过paths
设置。 (记录在案here。)