定义本地web应用程序和CDN之间的嵌套依赖关系
Defining nested dependencies between your local web app and a CDN
我试图从CDN模块定义一个嵌套依赖项。
config线:1765错误:./modules/MyConcreteWidget/templates.htm HTTP status: 404
似乎CDN "text! "/path "认为它在本地web应用程序中。所有引用的文件确实存在于CDN中,并且可以通过浏览器地址栏调出。
我必须包装调用"MyWidget"在一个要求(本身)?
LOCAL REQUIRE配置如下:
require.config({
paths:
{
, jquery: '/scripts/jQuery/jquery-1.8.3.min'
, jsRender: '/scripts/jQuery/jsrender-1.0pre'
, text: '/scripts/RequireJS/2.1.4/text-2.0.5'
, domReady: '/scripts/RequireJS/2.1.4/domReady-2.0.1'
, 'myConcreteWidget': '/Modules/MyConcreteWidget/control'
, 'myWidet': 'http://server1/Modules/MyWidget/control'
},
shim:
{
'jsRender': { deps: ['jquery'] }
}
});
本地需要的样子:
require(['myConcreteWidget', 'domReady'],
function (myConcreteWidget, domReady) {
domReady(function () {
// Use the concrete widget here...
});
});
LOCAL DEFINE看起来像:myConcreteWidget
这个定义将使用CDN "Widget"作为依赖项。
define(
[
'myWidget'
],
function (myWidget) {
var concrete = new myWidget.MyWidget();
// Configure the concrete here...
// Return concrete widget here
return concrete;
});
CDN DEFINE LOOKS LIKE: myWidget
define(
[
'jquery'
, 'jsRender'
, 'text!./templates.htm'
],
function ($, jsRender, templates) {
$('body').append(templates);
function MyWidget(){
this.widgetId = 0;
this.name = 'Something Awesome';
};
return { MyWidget: MyWidget};
});
更新:
模板文件只有SCRIPT标记(用于模板)。
相对模块ID是相对于引用ID而不是路径进行解析的。在这个例子中,因为myWidget请求。/templates',它被解析为'模板',这是在模块ID命名空间的顶部,所以在baseUrl下查找,除非有其他配置,如路径配置在发挥。所以你可以为'template'添加一个路径条目来获得你想要的分辨率。
还请注意,文本插件有跨域限制:https://github.com/requirejs/text
相关文章:
- 用嵌套函数和默认函数定义函数
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 可以简化嵌套的延迟Q Promises解析吗
- 用于搜索的聚合物嵌套绑定
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- d3中堆栈函数和嵌套函数之间的差异
- 如何打印嵌套对象的所有值
- JavaScript 中的嵌套函数和 “this” 关键字
- 设置嵌套对象属性的更好方法
- querySelector/getElementByClassName嵌套项的顺序
- 猫鼬在特定记录中查找嵌套记录
- 访问嵌套JSON对象的键,其中键是动态的
- D3嵌套组作为x轴
- JavaScript中的嵌入循环和嵌套循环之间有区别吗
- 如何在两个大括号之间找到代码,尊重嵌套
- 在指令和嵌套指令之间共享模型
- 如何在嵌套指令之间共享变量
- 如何在React中复制对象之间的嵌套状态
- 如何在现有的父指令元素和子指令元素之间动态嵌套指令元素
- 定义本地web应用程序和CDN之间的嵌套依赖关系