0
我正在將我的應用程序轉換爲使用require.js,但似乎無法加載Bootstrap。這是在外形我在做什麼(以下假定一個簡單的平面目錄結構,沒有子目錄):RequireJS - 無法加載引導程序
main.js
requirejs.config({
paths: {
"jquery": "jquery-1.12.4.min",
"bootstrap" : "bootstrap.min"
},
shim: {
"bootstrap": {
deps: ["jquery"]
}
}
});
require(["jquery"], function($) {
console.log($.fn);
});
的index.html
<html>
<head>
<title>RequireJS Test</title>
<link rel="stylesheet" type="text/css" href="./bootstrap.min.css">
</head>
<body>
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<ul class="nav navbar-nav">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">File</a>
<ul class="dropdown-menu">
<li><a href="#">Open...</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">Save</a></li>
<li><a href="#">Save As...</a></li>
</ul>
</li>
</ul>
</div>
</body>
<script data-main="./main" src="./require.js"></script>
</html>
我的Bootstrap導航欄下拉菜單不起作用,事實上,當我在控制檯中調查jQuery對象本身時,我看不到任何從bootstrap.min.js附加的東西。但我看不出我做錯了什麼。我真正的應用程序也使用Backbone,並且沒有問題的加載。爲此,我使用以下墊片:
'backbone': {
'deps': ['jquery', 'underscore'],
'exports': 'Backbone'
}
但是Bootstrap的墊片對我來說不起作用。我錯過了明顯的東西嗎?
我使用的是requirejs,bootstrap和jQuery的最新版本。
謝謝你,工作。事實上,這讓我感到困惑。我的印象是:requirejs.config只會加載所有內容,就像一堆腳本標記一樣。但我想這是AMD的'異步',對吧? – ChrisM
'requirejs.config()'不會加載任何東西,除非您使用*頂級*處的'deps'選項來提供要加載的模塊列表。 (這個是在配置的最高層,它不同於'shim'內部的'deps')。注意頂級'deps'和* require(<在require.config'調用之後立即調用deps>)。 – Louis
明白了。謝謝你的澄清。 – ChrisM