在服务器端,当文件A
将文件B
导入为moudule时,A
使用B
的相对路径,其baseURL为A
的。但对于浏览器模块,假设我编写了一个名为module-A
的UI组件。它的文件结构如下:
.
|-- 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。我认为手动使用包管理器或管理器文件是一个常见的问题。