Я хочу использовать require.js для загрузки размещенной на CDN начальной загрузки и jquery.
Я понимаю, что этот вопрос задавался ранее (см. Ответ Стива Эйнона на Проблема загрузки PopperJS и Bootstrap через RequireJS, даже после использования рекомендуемой версии PopperJS ), но опубликованные ответы у меня не работают.
То, что я пробовал до сих пор
HTML-файл хоста имеет содержимое ...
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
<script data-main="js/market-place" src="js/lib/requirejs/require.min.js"></script>
</head>
<body>
html content etc.
</body>
</html>
Файл js / market-place.js содержит содержимое ...
console.log( 'market-place.js');
requirejs(['./decision-market-common'], function(){
console.log( 'common requirement met.');
require(['bootstrap'], function( bootstrap){
console.log( 'bootstrap requirement met.');
});
});
Файл js / solution-market-common.js содержит содержимое ...
console.log( 'decision-market-common.js');
requirejs.config({
paths: {
jquery : 'https://code.jquery.com/jquery-3.3.1.slim.min',
popper : 'https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min',
bootstrap: 'https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min'
},
shim: {
bootstrap: {
deps: ['jquery', 'globalPopper']
}
}
});
define( 'globalPopper', ['popper'], function( p){
window.Popper = p;
console.log( 'global Popper is set.');
return p;
});
Результат
Используя Chrome в качестве браузера, я получаю следующие результаты, сначала в консоли javascript ...
market-place.js
decision-market-common.js
common requirement met.
global Popper is set.
Но тогда я получаю ошибку JavaScript:
Failed to load resource: net::ERR_FILE_NOT_FOUND
require.js пытается загрузить ./popper.js, даже после того, как он успешно загрузил CDN popper.js! Почему?