1

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

├── 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模块的每个依赖项都相同。

对于baseUrlrequire.js 设置为static/js. 因为这些页面打算在本地使用,所以我不能使用绝对 url。如何让 require.js 从子文件夹中工作?

main.js 文件的内容:

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

require(['jquery'], function($) { ... }
4

1 回答 1

2

解决方案是根本不设置baseUrl

如果配置中没有明确设置 baseUrl,则默认值为加载 require.js 的 HTML 页面的位置。如果使用 data-main 属性,则该路径将成为 baseUrl。

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

于 2013-10-08T13:48:14.853 回答