我正在将RequireJS集成到一个CMS中,因此我将以下内容放在我的页面模板底部:
<html>
<body>
{Placeholder1}
<script src="scripts/require.js" data-main="scripts/main"></script>
{Placeholder2}
</body>
</html>
然后在每个页面上,我想创建一个利用RequireJS的函数。所以我尝试把这个放在页面底部:
<html>
<body>
<h1>Home</h1>
<div class="slider">Slider content</div>
<script src="scripts/require.js" data-main="scripts/main"></script>
<script type="text/javascript">
require([
'jquery',
'utils',
'slider'
], function ($, utils, slider) {
slider.start();
});
</script>
</body>
</html>
但是我在jquery、utils和slider js文件上遇到了404错误。似乎它没有读取我设置的main.js配置:
require.config({
paths: {
jquery: 'libs/jquery-1.8.1.min',
utils: 'libs/utils',
slider: 'libs/jquery.slider.min'
},
shim: {
slider: ['jquery']
}
});
require([ 'utils' ], function (utils) {
utils.init();
});
我尝试在页面头部加载RequireJS和main.js,但结果不一致。有时候jquery、utils和slider会按时加载,而有时候则不会。这就像是页面底部的内联"require"不知道页面上的主RequireJS或依赖规则一样,但我的断点在main.js中被打到了,所以我知道它被调用了。这是因为main.js被异步加载,而我在页面渲染时载入的内联"require"块并未意识到吗?我该如何解决这个问题?
我之前已经成功使用过RequireJS,但没有使用CMS。我总是使用"define",并且模块总是异步调用的,但从未像这样内联调用RequireJS函数。您有关于正确操作的任何想法吗?