这是我的html主管:
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta charset="utf-8">
<title>vente-privee.com</title>
<script src="@Url.Content("~/Scripts/Modules/lib/jquery-1.8.3.js")"></script>
<script type="text/javascript" src="//url/otherScript.js"></script>
<script src="@Url.Content("~/Scripts/Modules/config.js")"></script>
<script data-main="@Url.Content("~/Scripts/Modules/main")" src="@Url.Content("~/Scripts/Modules/requirejs/require.js")"></script>
</script>
</head>
我需要在标头中声明jquery和otherScript Syncrounously。 在require.js中,我还需要使用lib jquery(在头部声明相同),我不需要重新加载其他版本。
如何配置我的路径?
现在我这样做:
var require = {
paths: {
// local
"jquery": "lib/jquery-1.8.3",
"jquery.validate": "lib/jquery.validate",
"jquery.validate.unobtrusive": "lib/jquery.validate.unobtrusive",
},
shim: {
"jquery.validate": {
deps: ["jquery"],
exports: "jQuery.validator"
},
"jquery.validate.unobtrusive": {
deps: ["jquery.validate"],
exports: "jQuery.validator.unobtrusive"
所以我重新加载Jquery 2次,如何引用头部加载的jquery?
答案 0 :(得分:0)
我建议你重新安排你的脚本:
<script src="@Url.Content("~/Scripts/Modules/requirejs/require.js")"></script>
<script src="@Url.Content("~/Scripts/Modules/lib/jquery-1.8.3.js")"></script>
<script type="text/javascript" src="//url/otherScript.js"></script>
<script src="@Url.Content("~/Scripts/Modules/config.js")"></script>
<script>
require("@Url.Content("~/Scripts/Modules/main")");
</script>
这不是使用require脚本的data-main
属性;相反它require
是主要模块(这可能需要微不足道的调整,取决于main.js
的内容,但我希望你明白这一点)。这样jQuery会将自己注册到AMD,因为首先加载RequireJS并且 NOT 需要路径:
"jquery": "lib/jquery-1.8.3", // DELETE THIS!
顺便说一句,上面的代码中有一个迷路</script>
标记...(</head>
之前的最后一行)