我正在开发一个 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
的正常 require 路径如何设置,我都希望您获取文件 billingmanager/billing/billing.htm
— period.
我确实有一个解决方法,可以做这样的事情
config.paths['billingmanager/billing-htm'] = 'billingmanager/billing/billing.htm';
然后手动知道使用 require(['text!billingmanager/billing-htm']);
但我真的希望这里有一个简单的修复。
最佳答案
我还没有遇到这个具体问题,但要解决这个问题,我要做的第一件事就是用相对路径替换我给 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 中。)
关于javascript - RequireJS - 自定义路径和文本!插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22818126/