Require.js ignoring baseUrl(Require.js忽略baseUrl)
问题描述
好的,这快把我逼疯了,也许有人能给我指个正确的方向…
我将使用最新的require.js和jQuery组合作为我的模块加载器。我使用data-main
属性指向带有baseUrl
的配置文件。当我尝试加载模块时,baseUrl
被忽略,并且需要尝试从与main.js
相同的位置加载。
/js/main.js
require.config({
baseUrl: '/js/vendor/'
});
/path/to/page.html
<script data-main="/js/main" src="L2pzL3ZlbmRvci9yZXF1aXJlLWpxdWVyeS5qcw=="></script>
<script>
require(['jquery', 'bootstrap'], function($) {
$(function() {
console.log('hello world!');
});
});
</script>
预期:
加载http://localhost:3000/js/vendor/bootstrap.js
和日志hello world!
实际:
尝试加载http://localhost:3000/js/bootstrap.js
--失败:‘(
我尝试在Required script标记中对data-main
和src
使用相对路径,而不是绝对路径。我做的任何事情似乎都不会触发baseUrl
。我是否完全遗漏了文档中的某些内容?
推荐答案
问题在于Required.js异步加载脚本(这是Requirejs后面的点),因此当您在加载Required之后立即将require()
添加到脚本标记中时,此脚本将在js/main.js
加载之前执行。
最简单的方法是将所有这些都包含在main.js
中,或者创建一个新文件来保存此片段并从js/main加载它
/js/main.js
require.config({
baseUrl: '/js/vendor/'
});
require(['jquery', 'bootstrap'], function($) {
$(function() {
console.log('hello world!');
});
});
--OR--
/js/main.js
require.config({
baseUrl: '/js/vendor/',
deps: ['../boostrap']
});
/js/boostrap.js
define(['jquery', 'bootstrap'], function($) {
$(function() {
console.log('hello world!');
});
});
备注require()
成为引导文件中的define()
这篇关于Require.js忽略baseUrl的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Require.js忽略baseUrl
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01
- Flexslider 箭头未正确显示 2022-01-01
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07
- Fetch API 如何获取响应体? 2022-01-01
- 400或500级别的HTTP响应 2022-01-01
- 失败的 Canvas 360 jquery 插件 2022-01-01
- addEventListener 在 IE 11 中不起作用 2022-01-01