在服务器端,当文件将文件作为模块A
导入时,使用baseURL 为's的相对路径。但是对于浏览器端模块,假设我编写了一个名为. 它的文件结构如下所示:B
A
B
A
module-A
.
|-- main.js
`-- pic
`-- c.jpg
如果我创建一个带有 的元素<img src="./pic/c.jpg">
,它指的是正确的图片。
然后我把它做成一个包,如果我使用 Bower 安装它看起来像这样:
.
|-- components
| `-- module-A
| |-- main.js
| `-- pic
| `-- c.jpg
`-- index.html
甚至像这样:
.
|-- components
| `-- module-B
| `-- components
| `-- module-A
| |-- main.js
| `-- pic
| `-- c.jpg
`-- index.html
但是此时如果我在 中再创建一个菜单index.html
,那么 中就会有一个<img sc="./pic/a.jpg">
JS 代码创建的标签module-A
。这次错了!
如果我想让它工作,我必须使用 iframe 来包装,module A
那么事情可能会很好。
对于服务器端程序,一切正常,因为没有像 HTML 这样的东西可以在一页中制作所有代码(我的意思是没有 UI 的程序。)。
我怎样才能解决这个问题?
更新:
是的,我使用 Bower 和一个 CommonJS 加载器 SeaJS,它在中国更受欢迎,而不是 RequireJS。我认为我们是否手动使用包管理器或管理器文件是一个常见问题。