javascript - RequireJS - 自定义路径和文本!插入

标签 javascript requirejs requirejs-text

我正在开发一个 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/

相关文章:

c# - C# 动态加载数据表到 JS 数组

javascript - 用 jQuery 模拟一个物体摔倒

javascript - 将外部 HTML 和 JS 注入(inject)页面

javascript - 内联 require.js 文本!使用咕噜声

javascript - Bootstrap 3 - 在给定时刻只显示一个模态

jquery - 如何在 Require.JS 上下文中删除 jQuery "html"函数?

javascript - RequireJS:回调函数中依赖项和参数的不同计数

javascript - 每次使用模板时都编译它们

requirejs - Marionette,如何动态更改 View 的模板

javascript - 在 requireJS 模块中加载模板图像