我为Requirejs设置了data-main,并根据应该为我的所有脚本文件设置baseUrl的文档。但这种情况并非如此。 我的文件夹结构如下:
Home/Index.html
Content/scripts/main.js
Content/scripts/libs/require/require.js
Content/scripts/libs/jquery/require_jquery.js
Content/scripts/libs/jquery/jquery-1.7.1.mins.js
以下是 Index.html 中的脚本标记:
<script data-main="/PAWS/Content/scripts/main.js" src="/PAWS/Content/scripts/libs/require/require.js" type="text/javascript"></script>
我认为它会将我的baseUrl设置为/ PAWS / Content / scripts /但它对我不起作用。在我的 main.js 中,我这样做:
require(
{ paths:
{ jquery: 'libs/jquery',
knockout: 'libs/knockout'
}
},
['jquery/require_jquery'],
function ($) { .... }
);
在我的 require_jquery.js 文件中,我执行此操作:
define(["libs/jquery/jquery-1.7.1.min.js"], function () {
return jQuery;
});
但我得到404错误说:
GET http://localhost/PAWS/Home/libs/jquery/jquery-1.7.1.min.js 404 NOT FOUND
你看..我的baseUrl应该是/ PAWS / Content / scripts ...但它完全忽略了我的数据主要属性设置,只是将/ PAWS / Home /解析为baseUrl。我做错了什么?
答案 0 :(得分:10)
但是,如果依赖项名称具有以下属性之一,则将其视为常规文件 路径,就像传递给
<script src="">
标签的东西一样:
- 以“.js”结尾。
- 以“/".
开头- 包含URL协议,例如“http:”或“https:”。
由此看来,libs/jquery/jquery-1.7.1.min.js
末尾的显式“.js”混淆了你的路径:baseUrl。请改为libs/jquery/jquery-1.7.1.min
。