我有一个像这样的目录结构:
├── index.html
├── static
│ └── js
│ ├── main.js
│ ├── jquery.js
│ └── require.js
└── subfolder
└── index.html
在我的顶级index.html
中,我正在加载这样的require.js,它可以运行:
<script data-main="static/js/main" src="static/js/require.min.js"></script>
但是,在subfolder/index.html
中,我无法成功加载require.js:
<script data-main="../static/js/main" src="../static/js/require.min.js"></script>
导致“脚本错误:jquery”,并且对于main
模块的每个依赖项都是相同的。
require.js的baseUrl
设置为static/js
。因为这些页面是在本地使用的,所以我不能使用绝对URL。如何从子文件夹中获取require.js?
main.js文件的内容:
require.config({
baseUrl: 'static/js',
paths: {
'jquery': 'jquery-2.0.3',
}
});
require(['jquery'], function($) { ... }
答案 0 :(得分:2)
解决方案是根本不设置baseUrl
:
如果配置中未显式设置baseUrl,则默认值将是加载require.js的HTML页面的位置。如果使用data-main属性,该路径将成为baseUrl。
删除baseUrl
设置导致上述示例正常运行。