如何在不使用绝对 url 的情况下从多个路径加载 require.js



我有一个这样的目录结构:

├── 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。如何要求.js从子文件夹中工作?

主.js文件的内容:

require.config({
    baseUrl: 'static/js',
    paths: {
        'jquery': 'jquery-2.0.3',
    }
});
require(['jquery'], function($) { ... }

解决方案是根本不设置baseUrl

如果在配置中未显式设置 baseUrl,则默认值将为加载 require.js 的 HTML 页面的位置。如果使用数据主属性,则该路径将成为基 URL。

删除baseUrl设置导致上述示例正常工作。

相关内容

最新更新