サーバー側では、ファイルがファイルをモジュールとしてAインポートするときに、baseURLが'sである相対パスを使用します。しかし、ブラウザ側のモジュールの場合、という名前のUIコンポーネントを作成するとします。そのファイル構造は次のようになります。BABAmodule-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
しかし、この時点で、にもう1つのメニューを作成すると、にJSコードによって作成されindex.htmlたタグがあります。今回は間違っています!<img sc="./pic/a.jpg">module-A
それを機能させたい場合は、iframeを使用してラッパーを作成する必要module Aがあります。そうすれば、問題がない可能性があります。
サーバーサイドプログラムの場合、1ページにすべてのコードを作成するHTMLのようなものがないため(つまり、UIを持たないプログラム)、すべてが正常に機能します。
どうすればこれを修正できますか?
アップデート:
はい、私はBowerと、RequireJSよりも中国で人気のあるCommonJSローダーSeaJSを使用しています。パッケージマネージャーを使用するのか、マネージャーファイルを手動で使用するのかはよくある問題だと思います。